Другие языки программирования и технологии
Как изменить свойство всех объектов одного класса в C#?
Что бы не писать допустим мне button1.Enable = true; button2.Enabled = true; ...А что бы один циклом, без большой писанины, можно было бы это осуществить. Как так можно осуществить? А то у меня 30 кнопок. Читал при помощи цикла foreach можно так сделать, но не понял куда его вставлять.
C# является объектно-ориентированным языком программирования и аналогично другим современным языкам группирует связанные поля, методы, свойства и события в структуры данных, которые называются классами.
Классы и объекты
Класс, по сути, является чертежом для пользовательского типа данных. Определив класс, его можно использовать, загрузив в память. Класс, загруженный в память, называется объектом или экземпляром. Экземпляр класса создается с помощью ключевого слова C# new.
Далее представлен пример определения класса с именем SampleClass и создание объекта с именем sampleClass1, который является экземпляром этого класса. Поскольку необходимо, чтобы функция Main была определена внутри класса, в следующем коде также определяется класс Program, однако он не используется для создания объекта. Подобно тому, как на основе одного чертежа можно построить несколько зданий, можно создать любое количество объектов одного класса. Очень часто используются массивы или списки, содержащие множество объектов одного класса. Каждый экземпляр класса занимает отдельную область памяти; значения его полей (исключая статические поля, как описано далее) также являются независимыми. В представленном ниже примере кода создается один объект типа Animal, ему задается размер "2", и другой объект с размером "3". Однако для этого правила существует важное исключение, а именно статический член.
Классы и объекты
Класс, по сути, является чертежом для пользовательского типа данных. Определив класс, его можно использовать, загрузив в память. Класс, загруженный в память, называется объектом или экземпляром. Экземпляр класса создается с помощью ключевого слова C# new.
Далее представлен пример определения класса с именем SampleClass и создание объекта с именем sampleClass1, который является экземпляром этого класса. Поскольку необходимо, чтобы функция Main была определена внутри класса, в следующем коде также определяется класс Program, однако он не используется для создания объекта. Подобно тому, как на основе одного чертежа можно построить несколько зданий, можно создать любое количество объектов одного класса. Очень часто используются массивы или списки, содержащие множество объектов одного класса. Каждый экземпляр класса занимает отдельную область памяти; значения его полей (исключая статические поля, как описано далее) также являются независимыми. В представленном ниже примере кода создается один объект типа Animal, ему задается размер "2", и другой объект с размером "3". Однако для этого правила существует важное исключение, а именно статический член.
Делаешь массив из кнопок, инициализируешь каждую программно в цикле, а не мышкой в редакторе форм. Далее обращаешься к каждой по индексу в массиве.
должна быть коллекция всех компонентов формы, по ней нужно пройтись этим самым циклом проверяя каждый компонент на принадлежность его к кнопке, ну и если это кнопка, то приводишь к типу кнопки и вызываешь свою enable
Саня Галиямутдинов
Код в качестве примера помог бы мне
Самое простое, это создаешь массив указателей, в который забиваешь руками или в цикле ссылки на нужные тебе кнопки или их поля и потом в цикле меняешь их значения. Но, если посложнее, то можно создать класс по принципу массива и в нем группируешь кнопки как тебе нужно и просто вызывая в итоге метод например Enable ты за счет реализации в самом классе автоматически включишь определенную группу кнопок, так же и с другими методами. Я в свое время часто делал такие массивы, не на С# конечно, но суть та же. Если тебе нужен массив со сложной структурой, то тебе проще вывести его в отдельный класс, который будет заниматься кучей рутины, такой как подсчет элементов, изменение групповых данных и тд....
foreach (Control c in Controls)
if (c is Button)
c.Enabled = false;
if (c is Button)
c.Enabled = false;
из одной моей старой программы
//this.Refresh();
/*
Application.OpenForms["Form1"].Refresh();
//(Controls["listBox1"] as ListBox) //.Focus
foreach (Control control in Controls)
{
TextBox tb = control as TextBox;
if (tb != null)
{
tb.Text = "Text";
}
}
//.Controls["listBox1"].Items.Add("aaa");
*/
//this.Refresh();
/*
Application.OpenForms["Form1"].Refresh();
//(Controls["listBox1"] as ListBox) //.Focus
foreach (Control control in Controls)
{
TextBox tb = control as TextBox;
if (tb != null)
{
tb.Text = "Text";
}
}
//.Controls["listBox1"].Items.Add("aaa");
*/
Массив делай из кнопок и всё получиться
Делаешь массив из кнопок
Похожие вопросы
- как посчитать количество объектов в классе с помощью static. На С++
- Абстрактные классы в c#
- проясните по классу в c++ по книге.
- Объект и класс это синонимы ?
- классы на C++
- расскажите пожалуйста просто что такое класс в C++, я кодил только на С и Delphi
- Зачем нужны классы в c++? Никак не могу понять... Что такое private, public зачем они нужны и т. д?
- Как в C# инициализировать массив в свойстве класса?
- Экземпляра класса, объекты
- С++, объект класса, экземпляр класса, какой тип переменной хранит экземпляр класса? (экземпляр это что? Word, lpstr..?)