我正在尝试启用和禁用2016年到2005年的多个按钮,它在我的C ++程序中命名为But2016到But2005,但它不起作用:
当我在名称中分配变量时,例如: 但是+“& i” - > Enable = false;
它似乎是一个错误,但未宣布。并且,当我尝试使用间接变量时,它不起作用,如:
RadioButton^ But = (gcnew System::Windows::Forms::RadioButton());
for (i = 2016; i > 2004; i--)
{
But->Name = "But" + (i);
textBox1->Text = But->Name->ToString();
But->Enabled = false;
}
如何解决这个问题?
答案 0 :(得分:0)
您无法将字符串组合在一起以创建新的变量名称。但是,应该可以将按钮输入某种容器中并使用循环迭代它。
下面是一些伪代码。请记住,这不是用C ++编写的,但这样的事情应该是可能的:
Map buttons = new HashMap();
buttons.add(2005, But2005);
buttons.add(2006, But2006);
... // add all buttons
for (Integer i in buttons) {
if (i >= 2005 && i <= 2016) {
buttons.get(i).disable();
}
}