- Регистрация
- 14.05.2016
- Сообщения
- 83
- Благодарностей
- 10
- Баллы
- 8
В общем создал сниппет, обычную форму Windows в кот. есть Combobox, он в свою очередь берёт данные из списка проекта.
Собственно нужен кусок кода кот. вытащит указанный столбец(весь, но с очисткой дублей) из таблицы проекта в тот самый список, а затем собственно будет отображаться в форме.
Почему вообще задействован список ? Просто по FAQ'ам на форуме уже создал вышесказанную форму которая черпает инфу в комбобокс. Если можно сделать без списка, будет даже лучше. Помогите пожалуйста !
Вот код сниппета:
Собственно нужен кусок кода кот. вытащит указанный столбец(весь, но с очисткой дублей) из таблицы проекта в тот самый список, а затем собственно будет отображаться в форме.
Почему вообще задействован список ? Просто по FAQ'ам на форуме уже создал вышесказанную форму которая черпает инфу в комбобокс. Если можно сделать без списка, будет даже лучше. Помогите пожалуйста !
Вот код сниппета:
Код:
System.Windows.Forms.Form F = new System.Windows.Forms.Form();
F.Text = "Выбор метода сортировки";
F.TopMost = true;
F.Width=450; //- задает ширину формы в пикселях
F.Height=400; //- задает высоту формы в пикселях
F.StartPosition = System.Windows.Forms.FormStartPosition.CenterScreen; //- Открытие окна в центре экрана
//создаем радиобаттоны
System.Windows.Forms.RadioButton rb1 = new System.Windows.Forms.RadioButton();
System.Windows.Forms.RadioButton rb2 = new System.Windows.Forms.RadioButton();
System.Windows.Forms.RadioButton rb3 = new System.Windows.Forms.RadioButton();
System.Windows.Forms.RadioButton rb4 = new System.Windows.Forms.RadioButton();
System.Windows.Forms.RadioButton rb5 = new System.Windows.Forms.RadioButton();
System.Windows.Forms.RadioButton rb6 = new System.Windows.Forms.RadioButton();
System.Windows.Forms.RadioButton rb7 = new System.Windows.Forms.RadioButton();
//Создаем GroupBox (группирующий бокс)
System.Windows.Forms.GroupBox grbox1 = new System.Windows.Forms.GroupBox();
//создаем выпадающий список
System.Windows.Forms.ComboBox combobox = new System.Windows.Forms.ComboBox();
//создаем кнопку
System.Windows.Forms.Button button = new System.Windows.Forms.Button();
//присваиваем значение
rb1.Text="Name1";
rb2.Text="Name2";
rb3.Text="Name3";
rb4.Text="Name4";
rb5.Text="Name5";
rb6.Text="Name6";
rb7.Text="Name7";
//назовем нашу группу
grbox1.Text = "Метод";
//задаем имя кнопки
button.Text = "Начать";
combobox.Text = "Выбрать всё";
//размещаем радиобаттоны
rb1.Location = new System.Drawing.Point(5,30);
rb2.Location = new System.Drawing.Point(5,60);
rb3.Location = new System.Drawing.Point(5,90);
rb4.Location = new System.Drawing.Point(5,120);
rb5.Location = new System.Drawing.Point(5,150);
rb6.Location = new System.Drawing.Point(5,180);
rb7.Location = new System.Drawing.Point(5,210);
//Говорим куда хотим его поставить
combobox.Location = new System.Drawing.Point(250,47);
//указываем его ширину, если нужно
combobox.Width=150;
//разрешаем нашим радиобаттонам иметь ширину, подходящую под содержимое
rb1.AutoSize=true;
rb2.AutoSize=true;
rb3.AutoSize=true;
rb4.AutoSize=true;
rb5.AutoSize=true;
rb6.AutoSize=true;
rb7.AutoSize=true;
//задаём значение по умолчанию
rb1.Checked=true;
//указываем список, в котором лежат нужные нам значения
var list = project.List["Список1"];
//говорим куда поставить групбоксы
grbox1.Location = new System.Drawing.Point(20,20);
//разрешаем им тянуться до подходящего размера
grbox1.AutoSize=true;
//положение кнопки в окне
button.Location = new System.Drawing.Point(320,295);
//размер кнопочки
button.Size=new System.Drawing.Size(100, 50);
//добавляем радиобаттоны и комбобоксы на групбоксы
grbox1.Controls.Add(rb1);
grbox1.Controls.Add(rb2);
grbox1.Controls.Add(rb3);
grbox1.Controls.Add(rb4);
grbox1.Controls.Add(rb5);
grbox1.Controls.Add(rb6);
grbox1.Controls.Add(rb7);
F.Controls.Add(combobox);
//добавляем групбоксы на форму
F.Controls.Add(grbox1);
//кидаем кнопку на форму
F.Controls.Add(button);
// вариант наполнения
combobox.Items.AddRange(list.ToArray());
button.Click+= delegate(object sender, System.EventArgs e)
{
F.Close(); //Dispose – это уничножение объекта. Есть аналог Close, но Dispose //выгрузит форму из памяти
};
//запускаем форму
F.ShowDialog();
//Забираем значения в наши переменные
//Делаем цикл, в котором будут перебраны все значения от 0 до grbox1.Controls.Count
//grbox1.Controls.Count - это количество наших радиобаттонов, которые мы в него положили
//При этом при переборе - текущее значение - 0,1,2,3 или другое, будет находится в переменной i
for(int i=0;i<grbox1.Controls.Count;i++)
{
if( (((System.Windows.Forms.RadioButton)grbox1.Controls[i]).Checked==true))
{
//устанавливаем значение переменной тест
project.Variables["sort_method"].Value=grbox1.Controls[i].Text;
//либо, если раскомментировать строку ниже - можно установить число а не значение
//project.Variables["sort_method"].Value=i.ToString();
}
}
return combobox.Text;