3 место Создание и работа с собственными формами (окнами) Windows через сниппеты C#.

Aviatikor

Client
Регистрация
30.01.2016
Сообщения
91
Благодарностей
30
Баллы
18
А как можно вывести картинку на форму, существует ли такое решение?
Например есть несколько картинок в папке, мне нужно вывести их на форму для выбора по клику, пробывал с PictureBox по аналогии в теме, что-то не работает, кто-нить подскажет, как поместить картину на форму?
 
Последнее редактирование:

goblin2oo8

Client
Регистрация
27.08.2013
Сообщения
93
Благодарностей
95
Баллы
18
А как можно вывести картинку на форму, существует ли такое решение?
Например есть несколько картинок в папке, мне нужно вывести их на форму для выбора по клику, пробывал с PictureBox по аналогии в теме, что-то не работает, кто-нить подскажет, как поместить картину на форму?
По клику ничего не пробовал, но может кому пригодится. Как а я вывел аватарку на форму
Код:
//Выводим аватарку
            System.Windows.Forms.PictureBox pictureBox1 = new System.Windows.Forms.PictureBox();
            pictureBox1.Location= new System.Drawing.Point(350, 10);//left,top
                        pictureBox1.Size = new System.Drawing.Size(50, 50);
                        pictureBox1.SizeMode = System.Windows.Forms.PictureBoxSizeMode.AutoSize;
                        pictureBox1.BorderStyle = System.Windows.Forms.BorderStyle.Fixed3D;
                                    pictureBox1.ImageLocation = "http://zennolab.com/discussion/data/avatars/m/6/6241.jpg";
            F.Controls.Add(pictureBox1);
Ключи - zennoposter c# вывести картинку на форму Windows Forms
 
Последнее редактирование:

Aviatikor

Client
Регистрация
30.01.2016
Сообщения
91
Благодарностей
30
Баллы
18
По клику ничего не пробовал, но может кому пригодится. Как я вывел аватарку на форму
Код:
//Выводим аватарку
            System.Windows.Forms.PictureBox pictureBox1 = new System.Windows.Forms.PictureBox();
            pictureBox1.Location= new System.Drawing.Point(350, 10);//left,top
                        pictureBox1.Size = new System.Drawing.Size(50, 50);
                        pictureBox1.SizeMode = System.Windows.Forms.PictureBoxSizeMode.AutoSize;
                        pictureBox1.BorderStyle = System.Windows.Forms.BorderStyle.Fixed3D;
                                    pictureBox1.ImageLocation = "http://zennolab.com/discussion/data/avatars/m/6/6241.jpg";
            F.Controls.Add(pictureBox1);
Нормалёк :ay:, кому ещё нужно на кнопке картинку я сделал так -
Код:
//создаем кнопку
System.Windows.Forms.Button button = new System.Windows.Forms.Button();
button.Image = Image.FromFile(project.Variables["img1"].Value);//картинка на кнопке
button.Location = new System.Drawing.Point(50,100);
button.Size = new System.Drawing.Size(230, 150);
F.Controls.Add(button);
button.Click+= delegate(object sender, System.EventArgs e)
{
    project.Variables["kod"].Value = "1";
    F.Dispose();
};
 
  • Спасибо
Реакции: goblin2oo8

goblin2oo8

Client
Регистрация
27.08.2013
Сообщения
93
Благодарностей
95
Баллы
18
  • Спасибо
Реакции: gs517

Aviatikor

Client
Регистрация
30.01.2016
Сообщения
91
Благодарностей
30
Баллы
18
Помогите плиз, кто знает, как можно вывести таблицу на windows form с помощью C# сниппета?
что-то типа как в экшене таблица, см.скрин
Screenshot_1.png
Взять значения из таблицы проекта, без подключений базы данных если такое возможно. Или подскажите простенький компоновщик windows form для zenno, только не этот Visual Studio?
 
Последнее редактирование:

goblin2oo8

Client
Регистрация
27.08.2013
Сообщения
93
Благодарностей
95
Баллы
18
Помогите плиз, кто знает, как можно вывести таблицу на windows form с помощью C# сниппета?
что-то типа как в экшене таблица, см.скрин
Посмотреть вложение 12297
Я примерно такой же штукой заморочился, нужно было вывести таблицу на форму. Решил выводить html код через System.Windows.Forms.WebBrowser()
Облом, баг какой то((
Об этом писал тут клик в webbrowser
 
  • Спасибо
Реакции: Aviatikor

goblin2oo8

Client
Регистрация
27.08.2013
Сообщения
93
Благодарностей
95
Баллы
18
Помогите плиз, кто знает, как можно вывести таблицу на windows form с помощью C# сниппета?
что-то типа как в экшене таблица, см.скрин
Посмотреть вложение 12297
Взять значения из таблицы проекта, без подключений базы данных если такое возможно. Или подскажите простенький компоновщик windows form для zenno, только не этот Visual Studio?
Держи такую штуку, мож поможет;-)

Код:
//*******************************************************************************************/
//Создаём форму
System.Windows.Forms.Form F = new System.Windows.Forms.Form();
F.Text = "Управление";
F.Width=1200;    //- задает ширину формы в пикселях
F.Height=850;    //- задает высоту формы в пикселях

/*
/***************************************************************/
//создаем кнопку 2
System.Windows.Forms.Button button2 = new System.Windows.Forms.Button();
//задаем имя чекбоксам
button2.Text = "Закрыть";
//положение в окне
button2.Location = new System.Drawing.Point(85,150);
//размер кнопочки
button2.Size=new System.Drawing.Size(75, 20);
//кидаем на форму
F.Controls.Add(button2);
/***************************************************************/
//описываем событие для клика по кнопке Закрыть
button2.Click+= delegate(object sender, System.EventArgs e)
{
    //project.Variables["kod_menu"].Value = Convert.ToString(0);
    F.Dispose();//Dispose – это уничножение объекта. Есть аналог Close, но Dispose //выгрузит форму из памяти
};
/***************************************************************/
//*
//создаем таблицу
System.Windows.Forms.DataGridView dgv = new System.Windows.Forms.DataGridView();
//положение в окне
dgv.Location = new System.Drawing.Point(200,150);
//размер
dgv.Size=new System.Drawing.Size(400, 400);
//Содержимое
//количество строк
dgv.RowCount = 6;
//количество столбцов
dgv.ColumnCount = 2;
dgv[0, 0].Value = "1 столбец 1 строка";
dgv[1, 0].Value = "2 столбец 1 строка";
dgv[0, 1].Value = "1 столбец 2 строка";
dgv[1, 1].Value = "2 столбец 2 строка";
//
//кидаем на форму
F.Controls.Add(dgv);

//
//позиция Формы на экране
F.StartPosition = System.Windows.Forms.FormStartPosition.Manual;
F.ShowDialog();
return 0;
 
  • Спасибо
Реакции: Aviatikor

Aviatikor

Client
Регистрация
30.01.2016
Сообщения
91
Благодарностей
30
Баллы
18
Держи такую штуку, мож поможет;-)

Код:
//*******************************************************************************************/
//Создаём форму
System.Windows.Forms.Form F = new System.Windows.Forms.Form();
F.Text = "Управление";
F.Width=1200;    //- задает ширину формы в пикселях
F.Height=850;    //- задает высоту формы в пикселях

/*
/***************************************************************/
//создаем кнопку 2
System.Windows.Forms.Button button2 = new System.Windows.Forms.Button();
//задаем имя чекбоксам
button2.Text = "Закрыть";
//положение в окне
button2.Location = new System.Drawing.Point(85,150);
//размер кнопочки
button2.Size=new System.Drawing.Size(75, 20);
//кидаем на форму
F.Controls.Add(button2);
/***************************************************************/
//описываем событие для клика по кнопке Закрыть
button2.Click+= delegate(object sender, System.EventArgs e)
{
    //project.Variables["kod_menu"].Value = Convert.ToString(0);
    F.Dispose();//Dispose – это уничножение объекта. Есть аналог Close, но Dispose //выгрузит форму из памяти
};
/***************************************************************/
//*
//создаем таблицу
System.Windows.Forms.DataGridView dgv = new System.Windows.Forms.DataGridView();
//положение в окне
dgv.Location = new System.Drawing.Point(200,150);
//размер
dgv.Size=new System.Drawing.Size(400, 400);
//Содержимое
//количество строк
dgv.RowCount = 6;
//количество столбцов
dgv.ColumnCount = 2;
dgv[0, 0].Value = "1 столбец 1 строка";
dgv[1, 0].Value = "2 столбец 1 строка";
dgv[0, 1].Value = "1 столбец 2 строка";
dgv[1, 1].Value = "2 столбец 2 строка";
//
//кидаем на форму
F.Controls.Add(dgv);

//
//позиция Формы на экране
F.StartPosition = System.Windows.Forms.FormStartPosition.Manual;
F.ShowDialog();
return 0;
Спасибо, то что надо! Попробую прикрутить project.Tables
Значит нашёл решение вместо WebBrowser ?
 

goblin2oo8

Client
Регистрация
27.08.2013
Сообщения
93
Благодарностей
95
Баллы
18
Спасибо, то что надо! значит нашёл решение вместо WebBrowser ?
Ну типа) Это я ща за 10 минут для тебя нагуглил, просто самому интересно стало)
Но мне нужно именно хтмл код выводить на форму, буду ждать пока баг пофиксят((
 

Aviatikor

Client
Регистрация
30.01.2016
Сообщения
91
Благодарностей
30
Баллы
18
Ну типа) Это я ща за 10 минут для тебя нагуглил, просто самому интересно стало)
Но мне нужно именно хтмл код выводить на форму, буду ждать пока баг пофиксят((
Я в яше искал везде то DataGridView с базой данных привязка, а другие варианты кода не подходят или с подключением чего либо ещё, ведь в зенно я так понял что не полностью код С# используется, вернее не такого формата как пишется в VisualStudio(например в C# элемент просто пишут DataGridView при создании, а здесь нужно дописывать System.Windows.Forms.DataGridView, и наверное есть и другие моменты кода которые не соответсвенно пишутся в экшене и на чистом C#), вот и не понятки у меня с кодом когда ищу через поиск. Твой вариант кода простой для меня то что нужно.
 

goblin2oo8

Client
Регистрация
27.08.2013
Сообщения
93
Благодарностей
95
Баллы
18
Я в яше искал везде то DataGridView с базой данных привязка, а другие варианты кода не подходят или с подключением чего либо ещё, ведь в зенно я так понял что не полностью код С# используется, вернее не такого формата как пишется в VisualStudio(например в C# элемент просто пишут DataGridView при создании, а здесь нужно дописывать System.Windows.Forms.DataGridView, и наверное есть и другие моменты кода которые не соответсвенно пишутся в экшене и на чистом C#), вот и не понятки у меня с кодом когда ищу через поиск. Твой вариант кода простой для меня то что нужно.
Ну да, в снипеттах c# нужно прописывать полный путь до библиотеки, которая подключена, в данном случае библиотека

Ну и соответственно к компонентам обращаешься только через полную "строку") - System.Windows.Forms.DataGridView
А в Visual Studio просто DataGridView
P.S.
Рад что помог код)
 
  • Спасибо
Реакции: Aviatikor

Aviatikor

Client
Регистрация
30.01.2016
Сообщения
91
Благодарностей
30
Баллы
18
Такой простой вопросик, а где найти тестировщик макросов C#, у меня его почему то нет? Где кнопка ТЕСТ?
Screenshot_2.png
 

goblin2oo8

Client
Регистрация
27.08.2013
Сообщения
93
Благодарностей
95
Баллы
18
rostonix писал что его убрали, а я чет им и не пользуюсь, раньше пользовался) вот пост
 
Последнее редактирование:

botreg

Пользователь
Регистрация
06.01.2016
Сообщения
149
Благодарностей
25
Баллы
18
  • Спасибо
Реакции: goblin2oo8

QWER-MAS

Client
Регистрация
14.05.2015
Сообщения
99
Благодарностей
10
Баллы
18
По примерам сделала себе такой сниппет.

Подскажите что сюда вписать чтоб он по нажатию на "Enter" он закрылся.

Спасибо.

Код:
System.Windows.Forms.Form F = new System.Windows.Forms.Form();
F.Text= "Ввод количества" ;
F.StartPosition = System.Windows.Forms.FormStartPosition.CenterScreen;

F.Width=380;    //- задает ширину формы в пикселях
F.Height=160;    //- задает высоту формы в пикселях



//создаем текстбокс
System.Windows.Forms.TextBox textb = new System.Windows.Forms.TextBox();
//указываем местоположение
textb.Location = new System.Drawing.Point(20,20);
//так же можно указать размеры текстбокса
textb.Width=310;
// добавляем его на форму
F.Controls.Add(textb);


//создаем кнопку
System.Windows.Forms.Button button = new System.Windows.Forms.Button();
//задаем имя чекбоксам
button.Text = "ОК";
//положение в окне
button.Location = new System.Drawing.Point(30,55);
//размер кнопочки
button.Size=new System.Drawing.Size(310, 20);
//кидаем на форму
F.Controls.Add(button);
//описываем событие для клика по кнопке
button.Click+= delegate(object sender, System.EventArgs e)
{
        F.Close();
};



//Создаем два GroupBox (группирующих бокса)
System.Windows.Forms.GroupBox grbox1 = new System.Windows.Forms.GroupBox();
//назовем наши группы
grbox1.Text = "вместо звездочек FF**********";
//говорим куда поставить групбоксы
grbox1.Location = new System.Drawing.Point(10,10);
//разрешаем им тянуться до подходящего размера
grbox1.AutoSize=true;
//добавляем радиобаттоны на групбокс1
grbox1.Controls.Add(textb);
//добавляем групбоксы на форму
F.Controls.Add(grbox1);

//запускаем форму
F.ShowDialog();



//или возвращаем в переменную по умолчанию
return textb.Text;
 
  • Спасибо
Реакции: himin

goblin2oo8

Client
Регистрация
27.08.2013
Сообщения
93
Благодарностей
95
Баллы
18
По примерам сделала себе такой сниппет.

Подскажите что сюда вписать чтоб он по нажатию на "Enter" он закрылся.

Спасибо.

Код:
System.Windows.Forms.Form F = new System.Windows.Forms.Form();
F.Text= "Ввод количества" ;
F.StartPosition = System.Windows.Forms.FormStartPosition.CenterScreen;

F.Width=380;    //- задает ширину формы в пикселях
F.Height=160;    //- задает высоту формы в пикселях



//создаем текстбокс
System.Windows.Forms.TextBox textb = new System.Windows.Forms.TextBox();
//указываем местоположение
textb.Location = new System.Drawing.Point(20,20);
//так же можно указать размеры текстбокса
textb.Width=310;
// добавляем его на форму
F.Controls.Add(textb);


//создаем кнопку
System.Windows.Forms.Button button = new System.Windows.Forms.Button();
//задаем имя чекбоксам
button.Text = "ОК";
//положение в окне
button.Location = new System.Drawing.Point(30,55);
//размер кнопочки
button.Size=new System.Drawing.Size(310, 20);
//кидаем на форму
F.Controls.Add(button);
//описываем событие для клика по кнопке
button.Click+= delegate(object sender, System.EventArgs e)
{
        F.Close();
};



//Создаем два GroupBox (группирующих бокса)
System.Windows.Forms.GroupBox grbox1 = new System.Windows.Forms.GroupBox();
//назовем наши группы
grbox1.Text = "вместо звездочек FF**********";
//говорим куда поставить групбоксы
grbox1.Location = new System.Drawing.Point(10,10);
//разрешаем им тянуться до подходящего размера
grbox1.AutoSize=true;
//добавляем радиобаттоны на групбокс1
grbox1.Controls.Add(textb);
//добавляем групбоксы на форму
F.Controls.Add(grbox1);

//запускаем форму
F.ShowDialog();



//или возвращаем в переменную по умолчанию
return textb.Text;
Приветики:bs:
Нужно после добавления на форму текстбокса - textb
Добавить следующий "отлавливатель" нажатия клавиши Enter:
Код:
//Описание события, улавливающее нажатие Enter в текстбоксе
textb.KeyDown+= delegate(object sender, System.Windows.Forms.KeyEventArgs e)
{
    if (e.KeyCode == Keys.Enter) F.Close();//Если нажата enter - закрываем форму
};
Весь код вашего C# сниппета будет такой:
Код:
System.Windows.Forms.Form F = new System.Windows.Forms.Form();
F.Text= "Ввод количества" ;
F.StartPosition = System.Windows.Forms.FormStartPosition.CenterScreen;
F.Width=380;    //- задает ширину формы в пикселях
F.Height=160;    //- задает высоту формы в пикселях
//создаем текстбокс
System.Windows.Forms.TextBox textb = new System.Windows.Forms.TextBox();
//указываем местоположение
textb.Location = new System.Drawing.Point(20,20);
//так же можно указать размеры текстбокса
textb.Width=310;
// добавляем его на форму
F.Controls.Add(textb);
//Описание события, улавливающее нажатие Enter в текстбоксе
textb.KeyDown+= delegate(object sender, System.Windows.Forms.KeyEventArgs e)
{
    if (e.KeyCode == Keys.Enter) F.Close();//Если нажата enter - закрываем форму
};
//создаем кнопку
System.Windows.Forms.Button button = new System.Windows.Forms.Button();
//задаем имя чекбоксам
button.Text = "ОК";
//положение в окне
button.Location = new System.Drawing.Point(30,55);
//размер кнопочки
button.Size=new System.Drawing.Size(310, 20);
//кидаем на форму
F.Controls.Add(button);
//описываем событие для клика по кнопке
button.Click+= delegate(object sender, System.EventArgs e)
{
        F.Close();
};
//Создаем два GroupBox (группирующих бокса)
System.Windows.Forms.GroupBox grbox1 = new System.Windows.Forms.GroupBox();
//назовем наши группы
grbox1.Text = "вместо звездочек FF**********";
//говорим куда поставить групбоксы
grbox1.Location = new System.Drawing.Point(10,10);
//разрешаем им тянуться до подходящего размера
grbox1.AutoSize=true;
//добавляем радиобаттоны на групбокс1
grbox1.Controls.Add(textb);
//добавляем групбоксы на форму
F.Controls.Add(grbox1);
//запускаем форму
F.ShowDialog();
//или возвращаем в переменную по умолчанию
return textb.Text;
Можете просто скопировать код и вставить обратно к себе ;-)
 
  • Спасибо
Реакции: Marcelo и QWER-MAS

botreg

Пользователь
Регистрация
06.01.2016
Сообщения
149
Благодарностей
25
Баллы
18
Приветики:bs:
Нужно после добавления на форму текстбокса - textb
Добавить следующий "отлавливатель" нажатия клавиши Enter:
Код:
//Описание события, улавливающее нажатие Enter в текстбоксе
textb.KeyDown+= delegate(object sender, System.Windows.Forms.KeyEventArgs e)
{
    if (e.KeyCode == Keys.Enter) F.Close();//Если нажата enter - закрываем форму
};
Весь код вашего C# сниппета будет такой:
Код:
System.Windows.Forms.Form F = new System.Windows.Forms.Form();
F.Text= "Ввод количества" ;
F.StartPosition = System.Windows.Forms.FormStartPosition.CenterScreen;
F.Width=380;    //- задает ширину формы в пикселях
F.Height=160;    //- задает высоту формы в пикселях
//создаем текстбокс
System.Windows.Forms.TextBox textb = new System.Windows.Forms.TextBox();
//указываем местоположение
textb.Location = new System.Drawing.Point(20,20);
//так же можно указать размеры текстбокса
textb.Width=310;
// добавляем его на форму
F.Controls.Add(textb);
//Описание события, улавливающее нажатие Enter в текстбоксе
textb.KeyDown+= delegate(object sender, System.Windows.Forms.KeyEventArgs e)
{
    if (e.KeyCode == Keys.Enter) F.Close();//Если нажата enter - закрываем форму
};
//создаем кнопку
System.Windows.Forms.Button button = new System.Windows.Forms.Button();
//задаем имя чекбоксам
button.Text = "ОК";
//положение в окне
button.Location = new System.Drawing.Point(30,55);
//размер кнопочки
button.Size=new System.Drawing.Size(310, 20);
//кидаем на форму
F.Controls.Add(button);
//описываем событие для клика по кнопке
button.Click+= delegate(object sender, System.EventArgs e)
{
        F.Close();
};
//Создаем два GroupBox (группирующих бокса)
System.Windows.Forms.GroupBox grbox1 = new System.Windows.Forms.GroupBox();
//назовем наши группы
grbox1.Text = "вместо звездочек FF**********";
//говорим куда поставить групбоксы
grbox1.Location = new System.Drawing.Point(10,10);
//разрешаем им тянуться до подходящего размера
grbox1.AutoSize=true;
//добавляем радиобаттоны на групбокс1
grbox1.Controls.Add(textb);
//добавляем групбоксы на форму
F.Controls.Add(grbox1);
//запускаем форму
F.ShowDialog();
//или возвращаем в переменную по умолчанию
return textb.Text;
Можете просто скопировать код и вставить обратно к себе ;-)
А у меня не работает Ваш код :(
http://joxi.ru/MAj73bpFvOD1Mr
 

goblin2oo8

Client
Регистрация
27.08.2013
Сообщения
93
Благодарностей
95
Баллы
18
  • Спасибо
Реакции: botreg

goblin2oo8

Client
Регистрация
27.08.2013
Сообщения
93
Благодарностей
95
Баллы
18
Не забудьте библиотеку подключить, а то на скриншоте у Вас ни того ни другого
2016-04-04_220928.jpg
 

QWER-MAS

Client
Регистрация
14.05.2015
Сообщения
99
Благодарностей
10
Баллы
18
Приветики:bs:
Нужно после добавления на форму текстбокса - textb
Добавить следующий "отлавливатель" нажатия клавиши Enter:
Код:
//Описание события, улавливающее нажатие Enter в текстбоксе
textb.KeyDown+= delegate(object sender, System.Windows.Forms.KeyEventArgs e)
{
    if (e.KeyCode == Keys.Enter) F.Close();//Если нажата enter - закрываем форму
};
Весь код вашего C# сниппета будет такой:
Код:
System.Windows.Forms.Form F = new System.Windows.Forms.Form();
F.Text= "Ввод количества" ;
F.StartPosition = System.Windows.Forms.FormStartPosition.CenterScreen;
F.Width=380;    //- задает ширину формы в пикселях
F.Height=160;    //- задает высоту формы в пикселях
//создаем текстбокс
System.Windows.Forms.TextBox textb = new System.Windows.Forms.TextBox();
//указываем местоположение
textb.Location = new System.Drawing.Point(20,20);
//так же можно указать размеры текстбокса
textb.Width=310;
// добавляем его на форму
F.Controls.Add(textb);
//Описание события, улавливающее нажатие Enter в текстбоксе
textb.KeyDown+= delegate(object sender, System.Windows.Forms.KeyEventArgs e)
{
    if (e.KeyCode == Keys.Enter) F.Close();//Если нажата enter - закрываем форму
};
//создаем кнопку
System.Windows.Forms.Button button = new System.Windows.Forms.Button();
//задаем имя чекбоксам
button.Text = "ОК";
//положение в окне
button.Location = new System.Drawing.Point(30,55);
//размер кнопочки
button.Size=new System.Drawing.Size(310, 20);
//кидаем на форму
F.Controls.Add(button);
//описываем событие для клика по кнопке
button.Click+= delegate(object sender, System.EventArgs e)
{
        F.Close();
};
//Создаем два GroupBox (группирующих бокса)
System.Windows.Forms.GroupBox grbox1 = new System.Windows.Forms.GroupBox();
//назовем наши группы
grbox1.Text = "вместо звездочек FF**********";
//говорим куда поставить групбоксы
grbox1.Location = new System.Drawing.Point(10,10);
//разрешаем им тянуться до подходящего размера
grbox1.AutoSize=true;
//добавляем радиобаттоны на групбокс1
grbox1.Controls.Add(textb);
//добавляем групбоксы на форму
F.Controls.Add(grbox1);
//запускаем форму
F.ShowDialog();
//или возвращаем в переменную по умолчанию
return textb.Text;
Можете просто скопировать код и вставить обратно к себе ;-)
Спасибо большое.
 
  • Спасибо
Реакции: goblin2oo8

baimkin

Client
Регистрация
04.08.2015
Сообщения
283
Благодарностей
111
Баллы
43
Накидал форму для выбора файла, форма работает, файл выбирается, название выбранного файла отображается, но никак не могу сделать так чтобы можно было выбрать файл повторно если случайно выбрал не тот файл. Помогите пожалуйста кто знает.

Код:
System.Windows.Forms.Form F = new System.Windows.Forms.Form();
F.AutoSize=true;
F.Text = "Выберите файл для проверки ";

//создаем кнопку
System.Windows.Forms.Button button = new System.Windows.Forms.Button();
//задаем имя кнопке
button.Text = "Выберите файл для проверки";
//положение в окне
button.Location = new System.Drawing.Point(50,50);
//размер кнопочки
button.AutoSize=true;
//создаем форму
System.Windows.Forms.OpenFileDialog of = new System.Windows.Forms.OpenFileDialog();
//устанавливаем директорию по умолчанию
of.InitialDirectory = "E:\\Загрузки Chrome" ;
//устанавливаем фильр, какие фаилы нас интересуют, и как их называть
of.Filter = "exel files (*.xls*)|*.xls*|All files (*.*)|*.*" ;
//кидаем кнопку на форму
F.Controls.Add(button);

//Лейбл1
System.Windows.Forms.Label label = new System.Windows.Forms.Label();
label.Text = (of.FileName);
label.Location = new System.Drawing.Point(50,100);
label.AutoSize=true;
F.Controls.Add(label);

//Лейбл2
System.Windows.Forms.Label label2 = new System.Windows.Forms.Label();
label2.Text = "Выбран файл:";
label2.Location = new System.Drawing.Point(50,80);
label2.AutoSize=true;
F.Controls.Add(label2);




//вызываем обработку события
button.Click+=delegate(object sender, System.EventArgs e)
{
    if(of.ShowDialog() == System.Windows.Forms.DialogResult.OK)
    {
label.Text = (of.FileName);
        F.Show();
        }
};


//запускаем форму
F.ShowDialog();
return (of.FileName);
 

goblin2oo8

Client
Регистрация
27.08.2013
Сообщения
93
Благодарностей
95
Баллы
18
Накидал форму для выбора файла, форма работает, файл выбирается, название выбранного файла отображается, но никак не могу сделать так чтобы можно было выбрать файл повторно если случайно выбрал не тот файл. Помогите пожалуйста кто знает.

Код:
System.Windows.Forms.Form F = new System.Windows.Forms.Form();
F.AutoSize=true;
F.Text = "Выберите файл для проверки ";

//создаем кнопку
System.Windows.Forms.Button button = new System.Windows.Forms.Button();
//задаем имя кнопке
button.Text = "Выберите файл для проверки";
//положение в окне
button.Location = new System.Drawing.Point(50,50);
//размер кнопочки
button.AutoSize=true;
//создаем форму
System.Windows.Forms.OpenFileDialog of = new System.Windows.Forms.OpenFileDialog();
//устанавливаем директорию по умолчанию
of.InitialDirectory = "E:\\Загрузки Chrome" ;
//устанавливаем фильр, какие фаилы нас интересуют, и как их называть
of.Filter = "exel files (*.xls*)|*.xls*|All files (*.*)|*.*" ;
//кидаем кнопку на форму
F.Controls.Add(button);

//Лейбл1
System.Windows.Forms.Label label = new System.Windows.Forms.Label();
label.Text = (of.FileName);
label.Location = new System.Drawing.Point(50,100);
label.AutoSize=true;
F.Controls.Add(label);

//Лейбл2
System.Windows.Forms.Label label2 = new System.Windows.Forms.Label();
label2.Text = "Выбран файл:";
label2.Location = new System.Drawing.Point(50,80);
label2.AutoSize=true;
F.Controls.Add(label2);




//вызываем обработку события
button.Click+=delegate(object sender, System.EventArgs e)
{
    if(of.ShowDialog() == System.Windows.Forms.DialogResult.OK)
    {
label.Text = (of.FileName);
        F.Show();
        }
};


//запускаем форму
F.ShowDialog();
return (of.FileName);
Если я правильно понял, то вы хотите:
1) Нажать на кнопку "Выберите файл для проверки"
2) Выбрать файл 1.xls (к примеру)
2.1) Вспомнить, что файл выбран не тот
3) Нажать на кнопку "Выберите файл для проверки"
4) Выбрать файл 2.xls (к примеру)
5) Закрыть форму

Если я всё правильно понял, то всё это работает как надо, сейчас проверил.
Если нет, то объясните подробнее)
 
  • Спасибо
Реакции: baimkin

baimkin

Client
Регистрация
04.08.2015
Сообщения
283
Благодарностей
111
Баллы
43
Вы поняли правильно, попробовал щас и вправду все работает, то ли глюк был, то ли меня глюкнуло)).
 

goblin2oo8

Client
Регистрация
27.08.2013
Сообщения
93
Благодарностей
95
Баллы
18
Вот и славненько, главное что всё работает ;-)
 

baimkin

Client
Регистрация
04.08.2015
Сообщения
283
Благодарностей
111
Баллы
43
Появилась новая задача - добавить в форму окошко с оповещением которое будет выскакивать если не выбраны ключевые параметры работы. Как сделать проверку ключевых параметров вроде понимаю, а вот как добавить окошко с оповещением поверх текущего окна не знаю, прошу помощи у знатоков.
 

goblin2oo8

Client
Регистрация
27.08.2013
Сообщения
93
Благодарностей
95
Баллы
18
Появилась новая задача - добавить в форму окошко с оповещением которое будет выскакивать если не выбраны ключевые параметры работы. Как сделать проверку ключевых параметров вроде понимаю, а вот как добавить окошко с оповещением поверх текущего окна не знаю, прошу помощи у знатоков.
Вывести MessageBox к примеру, с текстом "Все пропало!!!!"
Не вариант?

Код:
System.Windows.Forms.MessageBox.Show("Слава котикам!!!!");
 
  • Спасибо
Реакции: baimkin

baimkin

Client
Регистрация
04.08.2015
Сообщения
283
Благодарностей
111
Баллы
43
Вывести MessageBox к примеру, с текстом "Все пропало!!!!"
Не вариант?
Отличный вариант, добавил вот в таком виде:
Код:
string s = project.Variables["failDliaProverki"].Value;
string z = project.Variables["catalog"].Value;
if (s != "" & z != "0")
return "Есть";
else
System.Windows.Forms.MessageBox.Show("Неполные данные");
проверку ключевых параметров без которых нельзя продолжить работу проекта сделал, и теперь если их нету вылезает окошко с предупреждением, а вот как теперь сделать возврат к нужной части кода чтоб по новой выбрать эти параметры не знаю, может и тут подскажете?
 

goblin2oo8

Client
Регистрация
27.08.2013
Сообщения
93
Благодарностей
95
Баллы
18
Отличный вариант, добавил вот в таком виде:
Код:
string s = project.Variables["failDliaProverki"].Value;
string z = project.Variables["catalog"].Value;
if (s != "" & z != "0")
return "Есть";
else
System.Windows.Forms.MessageBox.Show("Неполные данные");
проверку ключевых параметров без которых нельзя продолжить работу проекта сделал, и теперь если их нету вылезает окошко с предупреждением, а вот как теперь сделать возврат к нужной части кода чтоб по новой выбрать эти параметры не знаю, может и тут подскажете?
Может наоборот?

Код:
if (s == "" & z == "0")
System.Windows.Forms.MessageBox.Show("Неполные данные");
else
return "Есть";
//Ну или можно закрыть форму например F.Close();
:-)
Либо если не то пальто, то прошу весь код в студию
 

baimkin

Client
Регистрация
04.08.2015
Сообщения
283
Благодарностей
111
Баллы
43
Не наоборот, проверяется как раз таки чтобы одна переменная не была пустой и вторя чтоб была не 0.
Сейчас получается у меня что если переменная s=пустоте и z=0 то выскакивает окошко с оповещением и надо после того как окошко оповещением закроется код начинал выполнятся по новой со строки:
Код:
//пишем, что у нас там будет при клике
button2.Click+=delegate(object sender, System.EventArgs e)
Весь код будет таким:
Код:
project.Variables["failDliaProverki"].Value = String.Empty;
project.Variables["catalog"].Value = String.Empty;

//список зенки со всеми категориями
var list=project.Lists["Каталоги"];
int x=1;//а тут у нас будет результат выбора

//создаем форму
System.Windows.Forms.Form F = new System.Windows.Forms.Form();
F.AutoSize=true;
F.TopMost=true;

//создаем кнопку
System.Windows.Forms.Button button2 = new System.Windows.Forms.Button();
button2.Text = "Выберите файл для проверки";
button2.Location = new System.Drawing.Point(30,20);
button2.AutoSize=true;
System.Windows.Forms.OpenFileDialog of = new System.Windows.Forms.OpenFileDialog();
F.Controls.Add(button2);
//создаем кнопку
System.Windows.Forms.Button button = new System.Windows.Forms.Button();
button.Text = "Продолжить";
button.Location = new System.Drawing.Point(30,200);
button.AutoSize=true;
F.Controls.Add(button);

//устанавливаем директорию по умолчанию
of.InitialDirectory = "E:\\Загрузки Chrome" ;
//устанавливаем фильтр, какие файлы нас интересуют, и как их называть
of.Filter = "exel files (*.xls*)|*.xls*|All files (*.*)|*.*" ;

//Лейбл1
System.Windows.Forms.Label label = new System.Windows.Forms.Label();
label.Text = (of.FileName);
label.Location = new System.Drawing.Point(30,70);
label.AutoSize=true;
F.Controls.Add(label);
//Лейбл2
System.Windows.Forms.Label label2 = new System.Windows.Forms.Label();
label2.Text = "Выбран файл:";
label2.Location = new System.Drawing.Point(30,50);
label2.AutoSize=true;
F.Controls.Add(label2);
//Лейбл3
System.Windows.Forms.Label label3 = new System.Windows.Forms.Label();
label3.Text = "Выберите выборку";
label3.Location = new System.Drawing.Point(30,100);
label3.AutoSize=true;
F.Controls.Add(label3);

//создаем выпадающий список
System.Windows.Forms.ComboBox combobox = new System.Windows.Forms.ComboBox();
//указываем, какие в нем должны быть значения
combobox.Items.AddRange(list.ToArray());
//Говорим куда хотим его поставить
combobox.Location = new System.Drawing.Point(30,125);
//указываем его ширину, если нужно
combobox.Width=200;
//крепим его на форму
F.Controls.Add(combobox);

//создаем чекбоксы
System.Windows.Forms.CheckBox chbox1 =  new System.Windows.Forms.CheckBox();
System.Windows.Forms.CheckBox chbox2 =  new System.Windows.Forms.CheckBox();
//задаем имя чекбоксам
chbox1.Text = "Проставить даты запросы на ненайденный товар";
chbox2.Text = "Ожидать проверки следующего файла по завершении";
//положение в окне
chbox1.Location = new System.Drawing.Point(30,155);
chbox2.Location = new System.Drawing.Point(30,175);
//разрешаем нашему чекбоксу иметь ширину, подходящую под содержимое
chbox1.AutoSize=true;
chbox2.AutoSize=true;
//кидаем на форму
F.Controls.Add(chbox1);
F.Controls.Add(chbox2);

//пишем, что у нас там будет при клике
button2.Click+=delegate(object sender, System.EventArgs e)
{
    if(of.ShowDialog() == System.Windows.Forms.DialogResult.OK)
    {
label.Text = (of.FileName);
        F.Show();
        project.Variables["failDliaProverki"].Value = of.FileName;
        }
};

//пишем, что у нас там будет при клике
button.Click+= delegate(object sender, System.EventArgs e)
{
    {
    for(int i =0;i<list.Count;i++)
    {
    if(list[i].Contains(combobox.Text))
    {
   
            project.Variables["catalog"].Value = i.ToString();
            break;
                    }
            }
    }

     F.Close();
};


//показываем форму
F.ShowDialog();

//забираем значения установленные в чекбоксы
project.Variables["ProstDatZapr"].Value = chbox1.Checked.ToString();
project.Variables["deistPoZaver"].Value = chbox2.Checked.ToString();

string s = project.Variables["failDliaProverki"].Value;
string z = project.Variables["catalog"].Value;
if (s != "" & z != "0")
return "Есть";
else
System.Windows.Forms.MessageBox.Show("Неполные данные");
 
  • Спасибо
Реакции: botovod

goblin2oo8

Client
Регистрация
27.08.2013
Сообщения
93
Благодарностей
95
Баллы
18
Не наоборот, проверяется как раз таки чтобы одна переменная не была пустой и вторя чтоб была не 0.
Сейчас получается у меня что если переменная s=пустоте и z=0 то выскакивает окошко с оповещением и надо после того как окошко оповещением закроется код начинал выполнятся по новой со строки:
Код:
//пишем, что у нас там будет при клике
button2.Click+=delegate(object sender, System.EventArgs e)
Весь код будет таким:
Код:
project.Variables["failDliaProverki"].Value = String.Empty;
project.Variables["catalog"].Value = String.Empty;

//список зенки со всеми категориями
var list=project.Lists["Каталоги"];
int x=1;//а тут у нас будет результат выбора

//создаем форму
System.Windows.Forms.Form F = new System.Windows.Forms.Form();
F.AutoSize=true;
F.TopMost=true;

//создаем кнопку
System.Windows.Forms.Button button2 = new System.Windows.Forms.Button();
button2.Text = "Выберите файл для проверки";
button2.Location = new System.Drawing.Point(30,20);
button2.AutoSize=true;
System.Windows.Forms.OpenFileDialog of = new System.Windows.Forms.OpenFileDialog();
F.Controls.Add(button2);
//создаем кнопку
System.Windows.Forms.Button button = new System.Windows.Forms.Button();
button.Text = "Продолжить";
button.Location = new System.Drawing.Point(30,200);
button.AutoSize=true;
F.Controls.Add(button);

//устанавливаем директорию по умолчанию
of.InitialDirectory = "E:\\Загрузки Chrome" ;
//устанавливаем фильтр, какие файлы нас интересуют, и как их называть
of.Filter = "exel files (*.xls*)|*.xls*|All files (*.*)|*.*" ;

//Лейбл1
System.Windows.Forms.Label label = new System.Windows.Forms.Label();
label.Text = (of.FileName);
label.Location = new System.Drawing.Point(30,70);
label.AutoSize=true;
F.Controls.Add(label);
//Лейбл2
System.Windows.Forms.Label label2 = new System.Windows.Forms.Label();
label2.Text = "Выбран файл:";
label2.Location = new System.Drawing.Point(30,50);
label2.AutoSize=true;
F.Controls.Add(label2);
//Лейбл3
System.Windows.Forms.Label label3 = new System.Windows.Forms.Label();
label3.Text = "Выберите выборку";
label3.Location = new System.Drawing.Point(30,100);
label3.AutoSize=true;
F.Controls.Add(label3);

//создаем выпадающий список
System.Windows.Forms.ComboBox combobox = new System.Windows.Forms.ComboBox();
//указываем, какие в нем должны быть значения
combobox.Items.AddRange(list.ToArray());
//Говорим куда хотим его поставить
combobox.Location = new System.Drawing.Point(30,125);
//указываем его ширину, если нужно
combobox.Width=200;
//крепим его на форму
F.Controls.Add(combobox);

//создаем чекбоксы
System.Windows.Forms.CheckBox chbox1 =  new System.Windows.Forms.CheckBox();
System.Windows.Forms.CheckBox chbox2 =  new System.Windows.Forms.CheckBox();
//задаем имя чекбоксам
chbox1.Text = "Проставить даты запросы на ненайденный товар";
chbox2.Text = "Ожидать проверки следующего файла по завершении";
//положение в окне
chbox1.Location = new System.Drawing.Point(30,155);
chbox2.Location = new System.Drawing.Point(30,175);
//разрешаем нашему чекбоксу иметь ширину, подходящую под содержимое
chbox1.AutoSize=true;
chbox2.AutoSize=true;
//кидаем на форму
F.Controls.Add(chbox1);
F.Controls.Add(chbox2);

//пишем, что у нас там будет при клике
button2.Click+=delegate(object sender, System.EventArgs e)
{
    if(of.ShowDialog() == System.Windows.Forms.DialogResult.OK)
    {
label.Text = (of.FileName);
        F.Show();
        project.Variables["failDliaProverki"].Value = of.FileName;
        }
};

//пишем, что у нас там будет при клике
button.Click+= delegate(object sender, System.EventArgs e)
{
    {
    for(int i =0;i<list.Count;i++)
    {
    if(list[i].Contains(combobox.Text))
    {

            project.Variables["catalog"].Value = i.ToString();
            break;
                    }
            }
    }

     F.Close();
};


//показываем форму
F.ShowDialog();

//забираем значения установленные в чекбоксы
project.Variables["ProstDatZapr"].Value = chbox1.Checked.ToString();
project.Variables["deistPoZaver"].Value = chbox2.Checked.ToString();

string s = project.Variables["failDliaProverki"].Value;
string z = project.Variables["catalog"].Value;
if (s != "" & z != "0")
return "Есть";
else
System.Windows.Forms.MessageBox.Show("Неполные данные");
Ну так наверно проверку то надо делать по нажатию кнопки, а ни неизвестно где :-)
Вот код:
Код:
project.Variables["failDliaProverki"].Value = String.Empty;
project.Variables["catalog"].Value = String.Empty;
//список зенки со всеми категориями
var list=project.Lists["Каталоги"];
int x=1;//а тут у нас будет результат выбора
//создаем форму
System.Windows.Forms.Form F = new System.Windows.Forms.Form();
F.AutoSize=true;
F.TopMost=true;
//создаем кнопку
System.Windows.Forms.Button button2 = new System.Windows.Forms.Button();
button2.Text = "Выберите файл для проверки";
button2.Location = new System.Drawing.Point(30,20);
button2.AutoSize=true;
System.Windows.Forms.OpenFileDialog of = new System.Windows.Forms.OpenFileDialog();
F.Controls.Add(button2);
//создаем кнопку
System.Windows.Forms.Button button = new System.Windows.Forms.Button();
button.Text = "Продолжить";
button.Location = new System.Drawing.Point(30,200);
button.AutoSize=true;
F.Controls.Add(button);
//устанавливаем директорию по умолчанию
of.InitialDirectory = "E:\\Загрузки Chrome" ;
//устанавливаем фильтр, какие файлы нас интересуют, и как их называть
of.Filter = "exel files (*.xls*)|*.xls*|All files (*.*)|*.*" ;
//Лейбл1
System.Windows.Forms.Label label = new System.Windows.Forms.Label();
label.Text = (of.FileName);
label.Location = new System.Drawing.Point(30,70);
label.AutoSize=true;
F.Controls.Add(label);
//Лейбл2
System.Windows.Forms.Label label2 = new System.Windows.Forms.Label();
label2.Text = "Выбран файл:";
label2.Location = new System.Drawing.Point(30,50);
label2.AutoSize=true;
F.Controls.Add(label2);
//Лейбл3
System.Windows.Forms.Label label3 = new System.Windows.Forms.Label();
label3.Text = "Выберите выборку";
label3.Location = new System.Drawing.Point(30,100);
label3.AutoSize=true;
F.Controls.Add(label3);
//создаем выпадающий список
System.Windows.Forms.ComboBox combobox = new System.Windows.Forms.ComboBox();
//указываем, какие в нем должны быть значения
combobox.Items.AddRange(list.ToArray());
//Говорим куда хотим его поставить
combobox.Location = new System.Drawing.Point(30,125);
//указываем его ширину, если нужно
combobox.Width=200;
//крепим его на форму
F.Controls.Add(combobox);
//создаем чекбоксы
System.Windows.Forms.CheckBox chbox1 =  new System.Windows.Forms.CheckBox();
System.Windows.Forms.CheckBox chbox2 =  new System.Windows.Forms.CheckBox();
//задаем имя чекбоксам
chbox1.Text = "Проставить даты запросы на ненайденный товар";
chbox2.Text = "Ожидать проверки следующего файла по завершении";
//положение в окне
chbox1.Location = new System.Drawing.Point(30,155);
chbox2.Location = new System.Drawing.Point(30,175);
//разрешаем нашему чекбоксу иметь ширину, подходящую под содержимое
chbox1.AutoSize=true;
chbox2.AutoSize=true;
//кидаем на форму
F.Controls.Add(chbox1);
F.Controls.Add(chbox2);
//пишем, что у нас там будет при клике
button2.Click+=delegate(object sender, System.EventArgs e)
{
    if(of.ShowDialog() == System.Windows.Forms.DialogResult.OK)
    {
label.Text = (of.FileName);
        F.Show();
        project.Variables["failDliaProverki"].Value = of.FileName;
        }
};
//пишем, что у нас там будет при клике
button.Click+= delegate(object sender, System.EventArgs e)
{    string s = project.Variables["failDliaProverki"].Value;
    string z = project.Variables["catalog"].Value;
    {
    for(int i =0;i<list.Count;i++)
    {
    if(list[i].Contains(combobox.Text))
    {

        project.Variables["catalog"].Value = i.ToString();
        break;
                    }
            }
    }
         
            if (s != "" & z != "0") F.Close();
            else System.Windows.Forms.MessageBox.Show("Неполные данные");
 
};
//показываем форму
F.ShowDialog();
//забираем значения установленные в чекбоксы
project.Variables["ProstDatZapr"].Value = chbox1.Checked.ToString();
project.Variables["deistPoZaver"].Value = chbox2.Checked.ToString();


return "Есть";
Думаю до ума доведешь, если я вдруг чего не учел;-)
 
Последнее редактирование:
  • Спасибо
Реакции: baimkin

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