вторник, 11 октября 2011 г.

C#. Динамическое создание элементов управления и работа с ними

   На примере расмотрим создание контролов и работу с ними в программном коде.



1. Создадим на форме кнопку:

  Button testbtn = new Button(); //создаем кнопку
  //устанавливаем свойства кнопки 
  testbtn.Text = "Нажми";
  testbtn.Name = "PressBtn";
  testbtn.Location = new Point(50, 100);
  testbtn.UseVisualStyleBackColor = true;
  //определяем что будет происходить при нажатии на кнопку 
  testbtn.Click += delegate
  { 
       MessageBox.Show("Кнопка работает!");
  } ;
  //добавляем  кнопку на форму
  this.Controls.Add(testbtn);  
2. Обращаться в программном коде к этой кнопке мы, для примера, можем так:

this.Controls["PressBtn"].Visible = false; 
3. Допустим что мы динамически создали элемент управления типа CheckBox с именем mycb и в программном коде нам нужно обратиться к его свойству Checked, которое не поддерживается типом Control, а следовательно мы не можем поступить так, как поступили в пункте 2. 
    По сути нам нужно извлечь элемент управления из коллекции Controls  родительского элемента управления и преобразовать извлеченный элемент к типу CheckBox. Сделать это можно так:

  CheckBox tempcb = this.Controls["mycb"] as CheckBox
 tempcb.Checked = false;
   

1 комментарий: