如何获取我想在面板上拖动的按钮的名称

How to get the name of a button that I want to drag on a panel

我是 C# 和 WinForm 的新手,我在互联网上进行了搜索,但没有找到我正在寻找的解决方案。如果有人能帮帮我就太好了。

这是我的问题-


我创建了一个如上图所示的表单。有3个面板-

  1. 输入面板(实际上有一些按钮)
  2. 拖动面板(用户将按钮从 "Input panel" 拖动到此面板)
  3. 输出面板(它会告诉"To Drag Panel"按钮的名称)

    • 如果用户拖动多个按钮,则输出面板也会显示多个名称。
var dragged = dragPanel.Controls
                       .OfType<typeof(Button)>()
                       .Select(button => button.Text);

试试这样的东西:

private void UpdateLabel()
{
    label1.Text = "";
    foreach (Control c in DragPanel.Controls)   //Going through all controls in the panel
    {
        if (c.GetType().Name == "Button")        // Checking whether the control is a Button
            label1.Text += Environment.NewLine+ ((Button)c).Text;     //Updating the label
    }
}

当按钮被拖动到面板时调用函数 UpdateLabel()

解释:

这段代码将selectDragPanel中的所有控件,如果是Button,它会取Text属性的值并在新的一行追加到标签上.

编辑:

您可以将 Button 替换为您想要的控件名称(例如:TextBox)。

foreach (Control c in DragPanel.Controls)   
{
    if (c.GetType().Name == "TextBox")     
    {
          label1.Text += Environment.NewLine + ((TextBox)c).Text;     
    }
}

如果你想获取面板中的所有控件,那么你可以这样做:

foreach (Control c in DragPanel.Controls) 
{
      label1.Text += Environment.NewLine + c.Text;  
}