C# 是否有快捷方式影响窗体上出现的几个按钮?
我有9个按钮。(C# 是否有快捷方式影响窗体上出现的几个按钮?,c#,winforms,C#,Winforms,我有9个按钮。(button1-button9)。我希望他们都把课文讲完。 有没有更有效的方法来实现这一点,而不是正常地清除每一个 顺便说一句,我知道我可以创建按钮数组,但在这里,所有的按钮都是从窗口手动创建的。因此,也许在这里这是不可能的。我能想到的唯一改进就是将按钮放入列表或数组中。如果手动创建按钮,一种方法是在表单中声明成员变量: private void clearBoard() { button1.Text = null; button2.Text = null;
button1
-button9
)。我希望他们都把课文讲完。
有没有更有效的方法来实现这一点,而不是正常地清除每一个
顺便说一句,我知道我可以创建按钮数组,但在这里,所有的按钮都是从窗口手动创建的。因此,也许在这里这是不可能的。我能想到的唯一改进就是将按钮放入列表或数组中。如果手动创建按钮,一种方法是在表单中声明成员变量:
private void clearBoard()
{
button1.Text = null;
button2.Text = null;
button3.Text = null;
button4.Text = null;
button5.Text = null;
button6.Text = null;
button7.Text = null;
button8.Text = null;
button9.Text = null;
}
然后将clearBoard
更改为:
private void CreateNextButton()
{
Button button = new Button();
// initialize button
Controls.Add(button);
// add button to your list
buttons.Add(button);
}
我认为更简单的形式是循环页面的控件,并仅为按钮设置文本属性
private void clearBoard()
{
foreach(Button button in buttons) button.Text = string.Empty;
}
不要忘记,应该在按钮分层的父控件上循环。如果它们在一个div中,则在该div上循环(假设它的id是myDiv)-例如:
您可以在控件中循环并检查它是否是
按钮
,如果是,请将文本
属性设置为空
foreach(Control control in myDiv.Controls)
如果要清除表单中所有按钮的文本,请使用以下命令:
foreach (var button in this.Controls)
{
if (button is Button)
{
((Button)button).Text = null;
}
}
foreach(此.Controls.OfType()中的控件b)
b、 Text=string.Empty;
但是,如果您只需要9个按钮的明文,则有多种方法,其中包括以下两种:
foreach (Control b in this.Controls.OfType<Button>())
b.Text = string.Empty;
for(inti=1;ib.Name==“button”+i).FirstOrDefault();
如果(button!=null)button.Text=string.Empty;
}
或者您也可以使用:
for (int i = 1; i <= 9; i++)
{
var button = this.Controls.OfType<Button>().Where(b => b.Name == "button" + i).FirstOrDefault();
if (button != null) button.Text = string.Empty;
}
List listButtons=new List(){button1,button2,button3,
按钮4,按钮5,按钮6,按钮7,按钮8,按钮9};
foreach(列表按钮中的变量项)
item.Text=string.Empty;
如果它们在窗口上,您可以这样做
List<Button> listButtons = new List<Button>() { button1, button2, button3,
button4, button5, button6, button7, button8, button9 };
foreach (var item in listButtons)
item.Text = string.Empty;
WinForms?网络表单?ASP.NETMVC?WPF?我更喜欢自己制作按钮列表。在表单中搜索控件的速度很慢。试试这个:List buttons=newlist(){button1,button2};如果他的表单上还有其他按钮怎么办?OP从未说过他想清除
表单上的所有按钮,但只清除这些特定的9。如果没有更多的按钮,我更喜欢你的答案。谢谢,如果我添加其他按钮,它会导致一个问题。其他方法不是这样吗?:int i=0,For(……{button{0}.text=null;i++;}???只需要空的9个按钮或所有添加的按钮?只需清除9个按钮。其他人必须继续显示文本
for (int i = 1; i <= 9; i++)
{
var button = this.Controls.OfType<Button>().Where(b => b.Name == "button" + i).FirstOrDefault();
if (button != null) button.Text = string.Empty;
}
List<Button> listButtons = new List<Button>() { button1, button2, button3,
button4, button5, button6, button7, button8, button9 };
foreach (var item in listButtons)
item.Text = string.Empty;
private void ClearButton()
{
foreach (var control in this.Controls)
{
Button btn = control as Button;
if (btn != null)
{
btn.Text = string.Empty;
}
}
}