Из таблицы в список сниппет c#

Gamma

Client
Регистрация
14.05.2016
Сообщения
83
Благодарностей
10
Баллы
8
В общем создал сниппет, обычную форму Windows в кот. есть Combobox, он в свою очередь берёт данные из списка проекта.
Собственно нужен кусок кода кот. вытащит указанный столбец(весь, но с очисткой дублей) из таблицы проекта в тот самый список, а затем собственно будет отображаться в форме.
Почему вообще задействован список ? Просто по 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;
 

Radzhab

Client
Регистрация
23.05.2014
Сообщения
1 500
Благодарностей
1 268
Баллы
113
т.е. ты хочешь без использования буферного списка сразу из таблицы загрузить столбец в combobox?
 

Gamma

Client
Регистрация
14.05.2016
Сообщения
83
Благодарностей
10
Баллы
8
ну что то вроде этого... у меня по проекту надо сортировать строки в таблице(около 5000 строк включая дубли, если очистить от дублей там будет пару сотен строк), в комбобоксе будет список из очищенных от дублей строк одного нужного мне столбца этой таблицы для того чтобы пользователь выбрал один из вариантов который должен остаться в таблице... поэтому в снипете нужно взять отдельный столб и очистить от дублей, не затрагивая саму таблицу, и сунуть этот список в комбобокс(неважно как, через буферный список или как то по другому)...
 

Gamma

Client
Регистрация
14.05.2016
Сообщения
83
Благодарностей
10
Баллы
8
актуально
 

Кто просматривает тему: (Всего: 2, Пользователи: 0, Гости: 2)