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

budora

Client
Joined
Aug 13, 2012
Messages
831
Reaction score
557
Points
93
А я придумал как. Костыль ещё тот.
На тест вставил в шаблон проверку на дату и ограничение до даты выполнения в шаблона и в MessageBox напомнил товарищу что нехорошо быть сосиской и пора отдать долг. Через два дня он сам позвонил.
Я :be::be::be:
 

rostonix

Известная личность
Joined
Dec 23, 2011
Messages
29,067
Reaction score
5,719
Points
113
А я придумал как. Костыль ещё тот.
На тест вставил в шаблон проверку на дату и ограничение до даты выполнения в шаблона и в MessageBox напомнил товарищу что нехорошо быть сосиской и пора отдать долг. Через два дня он сам позвонил.
Я :be::be::be:
Гы))) Люблю такое)
 
  • Thank you
Reactions: Sergodjan

eldar

Client
Joined
Jul 1, 2011
Messages
227
Reaction score
14
Points
18
здравствуйте, подскажите - как правильно передать значение выпадающего списка в переменную? прилагаю код, переменную закомментировал, т.к. этот способ не работает
Code:
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
Joined
Jul 1, 2011
Messages
227
Reaction score
14
Points
18
разобрался project.Variables["test"].Value = Convert.ToString(telefon);
 

LexxWork

Client
Joined
Oct 31, 2013
Messages
1,190
Reaction score
792
Points
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);};
 
Last edited:
  • Thank you
Reactions: iBotovod and Crate

schnaps

Client
Joined
Feb 7, 2010
Messages
837
Reaction score
150
Points
43
грозному котейке в вязаной шапке передаю спасибо! пришло время его статью воплотить в реальность! :-)
 

ibelieve

Client
Joined
Dec 24, 2012
Messages
250
Reaction score
96
Points
28
Полезность этой статьи зашкаливает! Ей можно бонусом и во втором конкурсе приз выдать. :-))
 

OTEC_SERGIUS

Client
Joined
Oct 4, 2014
Messages
387
Reaction score
69
Points
28
Как сделать чтобы форма создавалась не на заднем плане, а на переднем?
 

Lexicon

Client
Joined
Dec 27, 2012
Messages
1,775
Reaction score
901
Points
113
гм... а они разве и в ЗП на заднем вылезают? вроде только в ПМ...
 
  • Thank you
Reactions: Karamzin

Anatoly

Client
Joined
May 9, 2014
Messages
3
Reaction score
1
Points
3
Тс, а не подскажите, как сделать так, чтобы после ввода информации в текстбокс и нажатия на enter закрывалась форма?
 
  • Thank you
Reactions: LightWood

Nick

Client
Joined
Jul 22, 2014
Messages
1,987
Reaction score
819
Points
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#
 
  • Thank you
Reactions: Karamzin

ssXXXss

Client
Joined
Dec 23, 2014
Messages
7,375
Reaction score
2,042
Points
113
Lexicon есть вопрос у меня тебе по поводу проекта кнопки
 

Lexicon

Client
Joined
Dec 27, 2012
Messages
1,775
Reaction score
901
Points
113
задавайте)))
 
  • Thank you
Reactions: Karamzin

MVV

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

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

Nick

Client
Joined
Jul 22, 2014
Messages
1,987
Reaction score
819
Points
113
это должно быть что-нибудь типа
this.Close();
вообще, если напишешь this. - то там будет объект типа Window или похожий, полистай методы, похожие на Close
если после после this. у тебя вываливается подсказка, что этот объект - не окно, а кнопка какая-то, пробуй вместо этого написать parent.
ну или помучай sender. - что это за объект? Это может оказаться то самое окно, то есть sender.Close() может сработать
 

tatarin

Client
Joined
Oct 28, 2012
Messages
847
Reaction score
140
Points
43
Добавили бы такие возможности разработчики в стандартные экшены не через код, было бы круто!
 

Radugniy

Client
Joined
Oct 10, 2013
Messages
50
Reaction score
7
Points
8
Ребят, подскажите плз!

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

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



Code:
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
Joined
Dec 23, 2014
Messages
7,375
Reaction score
2,042
Points
113
  1. rb1.Text="Котики"; если я правильно понял то замени на
  2. rb1.Text=project.Variables["sss"].Value;
 

Radugniy

Client
Joined
Oct 10, 2013
Messages
50
Reaction score
7
Points
8
  1. rb1.Text="Котики"; если я правильно понял то замени на
  2. rb1.Text=project.Variables["sss"].Value;
не, не то. Названия радиобаттонов не трогаются. Нужно "галочку" поставить в нужный баттон.
Т.е. если значение переменной = "котики", то отмечаем 1-ый баттон, если пёсики, то 2-ой
 

Nick

Client
Joined
Jul 22, 2014
Messages
1,987
Reaction score
819
Points
113
по памяти - rb1.Selected = true;
 
  • Thank you
Reactions: iBotovod

Radzhab

Client
Joined
May 23, 2014
Messages
1,500
Reaction score
1,268
Points
113
как пихнуть метод в код? допустим у меня есть метод public void getRubrics(int rubrId){}

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

Nick

Client
Joined
Jul 22, 2014
Messages
1,987
Reaction score
819
Points
113
насколько я знаю, ты можешь только запихнуть код метода в тот самый сниппет, из которого потом будешь этот метод дёргать
либо скомпилируй его в DLL, добавь её в Global Assembly Cache и подключи через using XXX, тогда можешь из любого метода
 

LexxWork

Client
Joined
Oct 31, 2013
Messages
1,190
Reaction score
792
Points
113
что это никто про делегаты и контекст не вспоминает?
 
  • Thank you
Reactions: Yuriy Zymlex

Nick

Client
Joined
Jul 22, 2014
Messages
1,987
Reaction score
819
Points
113
Хватит издеваться над убогими людьми!
 
  • Thank you
Reactions: Yuriy Zymlex

swiniks

Client
Joined
Feb 19, 2015
Messages
244
Reaction score
172
Points
43
Тогда уже я в вашу тему, наверное спрошу, как вывести информацию из переменных на форме просто текст, что бы проект двигался дальше в процессе добавлять блоки c# и менять там что надо, а не стоял на c# блоке но без закрытия формы, так скажем сделать типа свой лог в процессе работы получать нужные значения.
 

rrroma

Client
Joined
Dec 3, 2014
Messages
38
Reaction score
5
Points
8
Тс, а не подскажите, как сделать так, чтобы после ввода информации в текстбокс и нажатия на enter закрывалась форма?
Присоединяюсь к вопросу: как закрыть окно после ввода. Клавиша enter не работает!
 

rrroma

Client
Joined
Dec 3, 2014
Messages
38
Reaction score
5
Points
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
Joined
Jun 9, 2014
Messages
405
Reaction score
200
Points
43
А я придумал как. Костыль ещё тот.
На тест вставил в шаблон проверку на дату и ограничение до даты выполнения в шаблона и в MessageBox напомнил товарищу что нехорошо быть сосиской и пора отдать долг. Через два дня он сам позвонил.
Я :be::be::be:
так поделитесь приятным сниппетом
 

Radzhab

Client
Joined
May 23, 2014
Messages
1,500
Reaction score
1,268
Points
113
И что стоит поменять время на компе )?
 

Users Who Are Viewing This Thread (Total: 1, Members: 0, Guests: 1)