我是C#的新手,我想知道groupbox.Controls[i]和/或panel.Controls[i]是如何工作的?
我有一个面板,里面有很多按钮来代表键盘。当按下键时,我改变键盘按钮的颜色。
然而,当我做keyboardPanel.Controls[2].BackColor = Color.Red;时,空格键会变成红色。
我的空格键是button55和TabIndex 54。为什么是我的空格键变红了?
发布于 2018-10-21 21:23:52
yoor空格条变红的原因很简单:keyboardPanel.Controls[2]是空格。请注意,按钮不一定按名称的顺序添加到keyboardPanel.Control的列表中。意思:keyboardPanel.Controls[1]不一定是button1,button55也不一定是keyboardPanel.Controls[55]。现在,如果您想按名称提取按钮,则应该使用以下命令:
keyboardPanel.Controls.Find("Button55" , true);其中"button55“是该控件的名称,true用于搜索所有子控件。
但我认为有一个更简单的方法来改变颜色。使用发件人:
private void button_Click(object sender, EventArgs e)
{
Control btn = sender as Control;
btn.BackColor = Color.Red;
}并将此方法作为所有按钮单击事件的事件处理程序。
编辑:如果您真的想重新安排GroupBox中的控件,您应该访问设计器。找到设计器的简单方法是在表单的构造函数方法中右键单击InitializeComponent(),然后选择Go to Definition。
在那里,您将找到添加控件的顺序。如下所示:
this.groupBox1.Controls.Add(this.button2);
this.groupBox1.Controls.Add(this.button3);
this.groupBox1.Controls.Add(this.button1);我我的案例控件是button2,Controls1是button3等等。你可以把它们重新排列如下:
this.groupBox1.Controls.Add(this.button1);
this.groupBox1.Controls.Add(this.button2);
this.groupBox1.Controls.Add(this.button3);https://stackoverflow.com/questions/52919735
复制相似问题