C #, выбрать по тегу

#winforms

#winforms

Вопрос:

Я новичок в c # и хочу установить для всех панелей значение visible= false, которые используют один и тот же тег. Это помешает мне вызывать каждое имя панели по отдельности и устанавливать для него значение false при активации новой панели.

Любая помощь?

Вот как я бы сделал это по-старому:

 private void button3click (object sender, EventArgs e)
{
 Panel1.Visible = false;
 Panel2.Visible = false
 Panel3.Visible = true;
}
  

Комментарии:

1. Я полагаю, вы используете Windows Forms? Элементы управления Windows Forms не имеют тегов, как элементы управления в VB6.

2. Привет, Джон, я использую Microsoft Visual c # Express 2010. Я не совсем уверен, для чего предназначена их система тегов, но я надеюсь, что она может выступать в качестве выбираемой. Вот снимок экрана области, в которой я установил параметр тега screencast.com/t/TwjTU1E6RYcy

3. Я думал, что они избавились от тегов, но, думаю, сохраните их для обратной совместимости. Я все еще не понимаю, как это вам поможет. Невозможно легко найти все элементы управления с заданным тегом. Вам действительно было бы лучше просто использовать каждый элемент управления. Это также сделает ваш код более чистым.

Ответ №1:

Если у вас есть наборы элементов управления, которые вы часто называете группой, вы можете попробовать поместить эти элементы управления в список:

 List<Control> typeAControls = new List<Control>(){control1, control2};
List<Control> typeBControls = new List<Control>(){control3, control4};

foreach (var toHide in typeAControls)
{
    toHide.Visible = false;
}

foreach (var toHide in typeBControls)
{
    toHide.Visible = true;
}
  

Комментарии:

1. А, ладно, полезно! Могу ли я при настройке элементов управления настроить глобальный элемент управления или мне придется определять их в каждой функции? Я все еще изучаю, как управлять пространствами имен и классами. А также, являются ли элементы управления в новом списке элементов управления доступными именами моих панелей?

2. Нет, это члены класса, которые ссылаются на сами элементы управления. Я думаю, я мог бы посоветовать вам не слишком опережать класс. Подобные методы используются лишь изредка. Чтобы увидеть, какие имена я использовал, щелкните слово «Panel1» в «Panel1.Visible = false;» затем щелкните правой кнопкой мыши и выберите «Перейти к определению».