如何在c#中以名称访问控件数?
在c#中,winform上似乎有10个按钮。按钮1、按钮2、按钮3和按钮10。当我点击按钮3时,我需要得到3作为它的数字。有可能这样做吗如何在c#中以名称访问控件数?,c#,button,controls,C#,Button,Controls,在c#中,winform上似乎有10个按钮。按钮1、按钮2、按钮3和按钮10。当我点击按钮3时,我需要得到3作为它的数字。有可能这样做吗 private void button1_Click_1(object sender, EventArgs e) { MessageBox.Show(button1.number); //Show 1 } 你应该把你的按钮命名为1,2等等 private void button1_Click_1(object sender, EventArgs e)
private void button1_Click_1(object sender, EventArgs e)
{
MessageBox.Show(button1.number); //Show 1
}
你应该把你的按钮命名为1,2等等
private void button1_Click_1(object sender, EventArgs e)
{
var button = (Button)sender;
MessageBox.Show(button.name);
}
你应该把你的按钮命名为1,2等等
private void button1_Click_1(object sender, EventArgs e)
{
var button = (Button)sender;
MessageBox.Show(button.name);
}
你可以用LINQ
Button btn = (Button) sender;
int number = int.Parse(new string(btn.Name
.Reverse()
.TakeWhile(Char.IsDigit)
.Reverse().ToArray()));
你可以用LINQ
Button btn = (Button) sender;
int number = int.Parse(new string(btn.Name
.Reverse()
.TakeWhile(Char.IsDigit)
.Reverse().ToArray()));
我只需将该数字添加到每个按钮的AccessibleName中,然后当代码捕获click事件时(对于所有按钮都应该相同),只需询问名称:
Button btn = (Button) sender;
switch (btn.AccessibleName) {
case "1":
//blah
}
我只需将该数字添加到每个按钮的AccessibleName中,然后当代码捕获click事件时(对于所有按钮都应该相同),只需询问名称:
Button btn = (Button) sender;
switch (btn.AccessibleName) {
case "1":
//blah
}
有几种方法可以做到这一点:
标记
属性,然后写入:
MessageBox.Show((sender as Button).Tag.ToString()); //Show 1
string name = (sender as Button).Name;
MessageBox.Show(name.Substring(7)); //Show 1
标签的MSDN
:有几种方法可以做到这一点:
标记
属性,然后写入:
MessageBox.Show((sender as Button).Tag.ToString()); //Show 1
string name = (sender as Button).Name;
MessageBox.Show(name.Substring(7)); //Show 1
标签的MSDN
:按钮的名字太可怕了!尽管如此,它还是会起作用的。我只是不推荐。那些按钮的名字太糟糕了!尽管如此,它还是会起作用的。我只是不推荐它。如果它已经是字符串“1”,为什么不直接使用它呢?切换的目的是什么?是的,你可以很容易地解析按钮名称,去掉“按钮”部分,留下数字。剥猫皮的方法不止一种。显然,该开关允许根据按钮进行各种处理。如果它已经是字符串“1”,为什么不直接使用它呢?切换的目的是什么?是的,你可以很容易地解析按钮名称,去掉“按钮”部分,留下数字。剥猫皮的方法不止一种。该开关显然允许根据按钮进行各种处理。