如何获取我想在面板上拖动的按钮的名称
How to get the name of a button that I want to drag on a panel
我是 C# 和 WinForm 的新手,我在互联网上进行了搜索,但没有找到我正在寻找的解决方案。如果有人能帮帮我就太好了。
这是我的问题-
我创建了一个如上图所示的表单。有3个面板-
- 输入面板(实际上有一些按钮)
- 拖动面板(用户将按钮从 "Input panel" 拖动到此面板)
输出面板(它会告诉"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;
}
我是 C# 和 WinForm 的新手,我在互联网上进行了搜索,但没有找到我正在寻找的解决方案。如果有人能帮帮我就太好了。
这是我的问题-
我创建了一个如上图所示的表单。有3个面板-
- 输入面板(实际上有一些按钮)
- 拖动面板(用户将按钮从 "Input panel" 拖动到此面板)
输出面板(它会告诉"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;
}