2015-11-18 3 views
0

Я все еще новичок в кодировании. Я делаю калькулятор, но я также хочу, чтобы в нем было много других вещей. как конверсионный калькулятор, кулинарная книга и радикальный словарь кандзи в C# WindowsFormsApplication, я хочу переключиться с одного на другое с помощью comboBox, поэтому я собирался создать массив со всем контролем, который я хочу скрыть/показатьКак использовать массив для хранения элементов управления в форме C# и скрыть/показать их

string[] numList = {"button0","button1","button2", "button3"};//this will have all number and . 
for (int i = 0; i < numList.Length; i++) 
{ 
    numList[i].Hide(); 
} 

, но он говорит мне, что нет определения для «Скрыть», но когда я swich numList [i] на button0, он работает, но я не хочу вызывать один и тот же элемент управления 11 каждый раз, когда я добавляю что-то в comboBox, чтобы исправить это или любой другой метод

+0

Я не понимаю! вы пытаетесь создать поле со списком, в котором, если вы нажмете элемент, который он скрывает, или другие элементы скрыть – alamin

ответ

1

Если вы хотите, чтобы скрыть все Buttons то попробуйте следующее:

foreach (Button control in Controls.OfType<Button>()) 
{ 
    (control).Hide(); 
} 

Это перебрать все Buttons формы и скрыть их. Но если вы просто хотите скрыть определенные кнопки, то вы можете установить Tag свойство, что кнопки на что-то вроде OP то, чтобы скрыть только что Buttons:

foreach (Button control in Controls.OfType<Button>()) 
{ 
    if (control.Tag.ToString() == "OP") 
    { 
      (control).Hide();      
    } 
} 

Или с помощью LINQ:

foreach (Button control in Controls.OfType<Button>().Where(control => control.Tag.ToString() == "OP")) 
{ 
    (control).Hide(); 
} 
0

You сохраняют список строк, вы должны фактически добавить кнопки в список, чтобы иметь видимый метод Скрыть

Control[] = numList = {button0, button1, button2, button3 }; 
1

попробуйте под кодом

private void btnHide_Click(object sender, EventArgs e) 
{ 
    string[] buttonList = { "button1", "button2", "button3" }; 
    for (int i = 0; i < buttonList.Length; i++) 
    { 
     Control[] ctrl = this.Controls.Find(buttonList[i], true); 
     ((Button)ctrl[0]).Visible = false; 
    } 
}