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

budora

Client
Регистрация
13.08.2012
Сообщения
831
Благодарностей
553
Баллы
93
А я придумал как. Костыль ещё тот.
На тест вставил в шаблон проверку на дату и ограничение до даты выполнения в шаблона и в MessageBox напомнил товарищу что нехорошо быть сосиской и пора отдать долг. Через два дня он сам позвонил.
Я :be::be::be:
 
  • Спасибо
Реакции: Sergodjan и LmPopo

rostonix

Известная личность
Регистрация
23.12.2011
Сообщения
29 071
Благодарностей
5 703
Баллы
113
А я придумал как. Костыль ещё тот.
На тест вставил в шаблон проверку на дату и ограничение до даты выполнения в шаблона и в MessageBox напомнил товарищу что нехорошо быть сосиской и пора отдать долг. Через два дня он сам позвонил.
Я :be::be::be:
Гы))) Люблю такое)
 
  • Спасибо
Реакции: Sergodjan

eldar

Client
Регистрация
01.07.2011
Сообщения
227
Благодарностей
14
Баллы
18
здравствуйте, подскажите - как правильно передать значение выпадающего списка в переменную? прилагаю код, переменную закомментировал, т.к. этот способ не работает
Код:
var list=project.Lists["Список 1"]; //список зенки со всеми категориями
int x=1;//а тут у нас будет результат выбора
System.Windows.Forms.Form F = new System.Windows.Forms.Form(); //создаем форму
System.Windows.Forms.ComboBox combobox = new System.Windows.Forms.ComboBox(); //создаем выпадающий список
combobox.Items.AddRange(new object[] {"45623453453","43523453245"}); //указываем, какие в нем должны быть ЗНАЧЕНИЯ
combobox.Location = new System.Drawing.Point(30,30); combobox.Width=150; F.Controls.Add(combobox);
System.Windows.Forms.Button button = new System.Windows.Forms.Button(); //создаем КНОПКУ
button.Text = "Кнопочка"; button.Location = new System.Drawing.Point(50,50); button.Size=new System.Drawing.Size(75, 75);
button.Click+= delegate(object sender, System.EventArgs e)
{     for(int i =0;i<list.Count;i++)
    {
    if(list[i].Contains(combobox.Text))
    {
        x+= i;
        break; // project.Variables["www"].Value = list[x].Contains(combobox.Text);
    }
    }
    F.Dispose();};
F.Controls.Add(button);F.ShowDialog();
var telefon = combobox.SelectedItem;
// project.Variables["test"].Value = telefon;
return telefon; //получаем выбранное значение
 

eldar

Client
Регистрация
01.07.2011
Сообщения
227
Благодарностей
14
Баллы
18
разобрался project.Variables["test"].Value = Convert.ToString(telefon);
 

LexxWork

Client
Регистрация
31.10.2013
Сообщения
1 190
Благодарностей
785
Баллы
113
кому нада тот увидит
form.Load += (s,e) => { form.TopMost = true; var rect = System.Windows.Forms.Screen.PrimaryScreen.WorkingArea; form.Location = new Point(rect.Right/2 - form.Width/2, rect.Bottom/2 - form.Height/2);};
 
Последнее редактирование:
  • Спасибо
Реакции: iBotovod и Crate

schnaps

Client
Регистрация
07.02.2010
Сообщения
836
Благодарностей
150
Баллы
43
грозному котейке в вязаной шапке передаю спасибо! пришло время его статью воплотить в реальность! :-)
 

OTEC_SERGIUS

Client
Регистрация
04.10.2014
Сообщения
387
Благодарностей
69
Баллы
28
Как сделать чтобы форма создавалась не на заднем плане, а на переднем?
 

Lexicon

Client
Регистрация
27.12.2012
Сообщения
1 775
Благодарностей
890
Баллы
113
гм... а они разве и в ЗП на заднем вылезают? вроде только в ПМ...
 
  • Спасибо
Реакции: Karamzin

Anatoly

Client
Регистрация
09.05.2014
Сообщения
3
Благодарностей
1
Баллы
3
Тс, а не подскажите, как сделать так, чтобы после ввода информации в текстбокс и нажатия на enter закрывалась форма?
 
  • Спасибо
Реакции: LightWood

Nick

Client
Регистрация
22.07.2014
Сообщения
1 961
Благодарностей
792
Баллы
113
You can drop this into the FormLoad event:

textBox1.KeyPress+=(sndr, ev)=>{if(ev.KeyChar.Equals((char)13)){// call your method for action on enter
ev.Handled=true;// suppress default handling}};

другие примеры по запросу: winforms textbox handle Enter key c#
 
  • Спасибо
Реакции: Karamzin

ssXXXss

Client
Регистрация
23.12.2014
Сообщения
7 380
Благодарностей
2 038
Баллы
113
Lexicon есть вопрос у меня тебе по поводу проекта кнопки
 

Lexicon

Client
Регистрация
27.12.2012
Сообщения
1 775
Благодарностей
890
Баллы
113
задавайте)))
 
  • Спасибо
Реакции: Karamzin

MVV

Новичок
Регистрация
14.02.2015
Сообщения
1
Благодарностей
0
Баллы
1
Уважаемый Lexicon. Я полный чайник.
Стандартная ситуация. Главное окно. Из него открываю другое окно. Во втором окне создаю кнопку для закрытия этого второго окна. Как написать обработчик? То, что его можно не уничтожать, а просто делать невидимым это я вычитал. Работаю в Mono. Через Gtk.
Application.Quit(); - выгружает приложение из памяти. (это из примеров про главное окно). Но мне это не нужно. Генерируемый обработчик нажатия кнопки:

protected void OnButton4Clicked(object sender,EventArgs e)
{
throw new NotImplementedException();
}
Заглушка обработчика.
Что-то не могу сообразить, как закрыть или скрыть это второе окно.
 

Nick

Client
Регистрация
22.07.2014
Сообщения
1 961
Благодарностей
792
Баллы
113
это должно быть что-нибудь типа
this.Close();
вообще, если напишешь this. - то там будет объект типа Window или похожий, полистай методы, похожие на Close
если после после this. у тебя вываливается подсказка, что этот объект - не окно, а кнопка какая-то, пробуй вместо этого написать parent.
ну или помучай sender. - что это за объект? Это может оказаться то самое окно, то есть sender.Close() может сработать
 

tatarin

Client
Регистрация
28.10.2012
Сообщения
796
Благодарностей
131
Баллы
43
Добавили бы такие возможности разработчики в стандартные экшены не через код, было бы круто!
 

Radugniy

Client
Регистрация
10.10.2013
Сообщения
50
Благодарностей
7
Баллы
8
Ребят, подскажите плз!

Есть группбокс с двумя радиобаттонами. 1) котики 2) песики
Есть переменная со значением соответствующим одному из радиобаттонов.

Так вот, как из переменной значение в нужный радиобаттон занести? нужно, чтобы форма открывалась со сделанным уже выбором, например "1)котики"



Код:
System.Windows.Forms.Form F = new System.Windows.Forms.Form();
F.Text = "Наша форма";
//создаем радиобаттоны
System.Windows.Forms.RadioButton rb1 = new System.Windows.Forms.RadioButton();
System.Windows.Forms.RadioButton rb2 = new System.Windows.Forms.RadioButton();
//присваиваем значение
rb1.Text="Котики";
rb2.Text="Пёсики";
//размещаем радиобаттоны
rb1.Location = new System.Drawing.Point(0,25);
rb2.Location = new System.Drawing.Point(0,45);
//разрешаем нашим радиобаттонам иметь ширину, подходящую под содержимое
rb1.AutoSize=true;
rb2.AutoSize=true;
//Создаем два GroupBox (группирующих бокса)
System.Windows.Forms.GroupBox Animal = new System.Windows.Forms.GroupBox();
//назовем наши группы
Animal.Text = "Животное";
//говорим куда поставить групбоксы
Animal.Location = new System.Drawing.Point(0,0);
//разрешаем им тянуться до подходящего размера
Animal.AutoSize=true;
//добавляем радиобаттоны на групбокс1
Animal.Controls.Add(rb1);
Animal.Controls.Add(rb2);
//добавляем групбоксы на форму
F.Controls.Add(Animal);
//запускаем форму
F.ShowDialog();
//Забираем значения в наши переменные
//Делаем цикл, в котором будут перебраны все значения от 0 до grbox1.Controls.Count
//grbox2.Controls.Count -  это количество наших радиобаттонов, которые мы в него положили
//При этом при переборе - текущее значение - 0,1,2,3 или другое, будет находится в переменной i
for(int i=0;i<Animal.Controls.Count;i++)
{
    if( (((System.Windows.Forms.RadioButton)Animal.Controls[i]).Checked==true))
    {
        //устанавливаем значение переменной тест
        project.Variables["test"].Value=Animal.Controls[i].Text;
        //либо, если раскомментировать строку ниже - можно установить число а не значение
        //project.Variables["test"].Value=i.ToString();
    }
}
return 0;
 

ssXXXss

Client
Регистрация
23.12.2014
Сообщения
7 380
Благодарностей
2 038
Баллы
113
  1. rb1.Text="Котики"; если я правильно понял то замени на
  2. rb1.Text=project.Variables["sss"].Value;
 

Radugniy

Client
Регистрация
10.10.2013
Сообщения
50
Благодарностей
7
Баллы
8
  1. rb1.Text="Котики"; если я правильно понял то замени на
  2. rb1.Text=project.Variables["sss"].Value;
не, не то. Названия радиобаттонов не трогаются. Нужно "галочку" поставить в нужный баттон.
Т.е. если значение переменной = "котики", то отмечаем 1-ый баттон, если пёсики, то 2-ой
 

Radzhab

Client
Регистрация
23.05.2014
Сообщения
1 500
Благодарностей
1 263
Баллы
113
как пихнуть метод в код? допустим у меня есть метод public void getRubrics(int rubrId){}

как его заюзать из другого места?
 

Nick

Client
Регистрация
22.07.2014
Сообщения
1 961
Благодарностей
792
Баллы
113
насколько я знаю, ты можешь только запихнуть код метода в тот самый сниппет, из которого потом будешь этот метод дёргать
либо скомпилируй его в DLL, добавь её в Global Assembly Cache и подключи через using XXX, тогда можешь из любого метода
 

LexxWork

Client
Регистрация
31.10.2013
Сообщения
1 190
Благодарностей
785
Баллы
113
что это никто про делегаты и контекст не вспоминает?
 
  • Спасибо
Реакции: Yuriy Zymlex

swiniks

Client
Регистрация
19.02.2015
Сообщения
244
Благодарностей
170
Баллы
43
Тогда уже я в вашу тему, наверное спрошу, как вывести информацию из переменных на форме просто текст, что бы проект двигался дальше в процессе добавлять блоки c# и менять там что надо, а не стоял на c# блоке но без закрытия формы, так скажем сделать типа свой лог в процессе работы получать нужные значения.
 

rrroma

Client
Регистрация
03.12.2014
Сообщения
38
Благодарностей
5
Баллы
8
Тс, а не подскажите, как сделать так, чтобы после ввода информации в текстбокс и нажатия на enter закрывалась форма?
Присоединяюсь к вопросу: как закрыть окно после ввода. Клавиша enter не работает!
 

rrroma

Client
Регистрация
03.12.2014
Сообщения
38
Благодарностей
5
Баллы
8
Вот не работающий код:
System.Windows.Forms.Form F = new System.Windows.Forms.Form();
F.Text = "Введите телефон без 8";

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

F.ShowDialog();

//говорим в какую переменную положить
project.Variables["Telefon"].Value = textb.Text;
 

AZANIR

Client
Регистрация
09.06.2014
Сообщения
405
Благодарностей
196
Баллы
43
А я придумал как. Костыль ещё тот.
На тест вставил в шаблон проверку на дату и ограничение до даты выполнения в шаблона и в MessageBox напомнил товарищу что нехорошо быть сосиской и пора отдать долг. Через два дня он сам позвонил.
Я :be::be::be:
так поделитесь приятным сниппетом
 

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