在Visual C ++中启用和禁用多个按钮

时间:2017-09-12 14:07:39

标签: visual-c++

我正在尝试启用和禁用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;
}

如何解决这个问题?

1 个答案:

答案 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();
    }
}