#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;» затем щелкните правой кнопкой мыши и выберите «Перейти к определению».