C# 如何获取要在面板上拖动的按钮的名称
我是C#和WinForm的新手,我在互联网上搜索过,但没有找到我想要的解决方案。如果有人能帮助我,那就太好了 这是我的问题-C# 如何获取要在面板上拖动的按钮的名称,c#,winforms,visual-studio,drag-and-drop,C#,Winforms,Visual Studio,Drag And Drop,我是C#和WinForm的新手,我在互联网上搜索过,但没有找到我想要的解决方案。如果有人能帮助我,那就太好了 这是我的问题- 我创建了一个类似上图的表单。有3个面板- 输入面板(它实际上包含一些按钮) 拖动面板(用户将按钮从“输入面板”拖动到此面板) 输出面板(它将从“拖动面板”中显示按钮的名称) 如果用户拖动多个按钮,则输出面板也会显示多个名称 var draugd=dragPanel.Controls 第()类 .Select(button=>button.Text); 尝试以下方法:
我创建了一个类似上图的表单。有3个面板-
- 如果用户拖动多个按钮,则输出面板也会显示多个名称
var draugd=dragPanel.Controls
第()类
.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()
说明:
此代码将选择DragPanel中的所有控件,如果它是一个按钮,则它将获取Text
属性的值并附加到标签的新行中
编辑:
您可以将按钮
替换为所需的控件名称(例如:文本框
)
如果要获取面板中的所有控件,则可以执行以下操作:
foreach (Control c in DragPanel.Controls)
{
label1.Text += Environment.NewLine + c.Text;
}
您可以通过.name属性获取拖动的按钮名称。字符串draggedName=draggedButton.Name;当且仅当Name属性是他想要的时,这才是真的。有些人寻找变量的名称,可能是不同的。。要达到这个目标,必须使用reflection@NikolayKostov:有什么需要解释的?此代码选择所有按钮(文本),然后您可以根据需要输出它…此代码不起作用,因为我无法找到此代码的用法。但谢谢你的回答,这很有效。但是,如果我想获得按钮以外的其他控件,我是否应该用(例如文本框)替换“按钮”?@RupamBhaduri:当然可以。您可以在那里使用任何控件名。如果要列出所有控件,则可以删除If语句。我会更新我的答案。请举个例子。那么,文本标签1.text+=Environment.NewLine+((按钮)c).text会工作吗?因为有((按钮)c)文本
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;
}