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

AZANIR

Client
Регистрация
09.06.2014
Сообщения
405
Благодарностей
198
Баллы
43
суть не во времени , а в фиче самой так сказать напоминание клиенту.
 

budora

Client
Регистрация
13.08.2012
Сообщения
831
Благодарностей
556
Баллы
93

stmult

Client
Регистрация
19.11.2013
Сообщения
96
Благодарностей
37
Баллы
18
Как сделать, чтобы форма открывалась в определенном месте на рабочем столе? У меня каждый раз в новой точке открывается. Пробовал через Form.DesktopLocation не получается. И второй вопрос, можно ли задать на escape - закрытие формы, как при нажатии крестика, без создания дополнительных кнопок в форме?
 

Radzhab

Client
Регистрация
23.05.2014
Сообщения
1 500
Благодарностей
1 268
Баллы
113
Как сделать, чтобы форма открывалась в определенном месте на рабочем столе? У меня каждый раз в новой точке открывается. Пробовал через Form.DesktopLocation не получается. И второй вопрос, можно ли задать на escape - закрытие формы, как при нажатии крестика, без создания дополнительных кнопок в форме?
По поводу открытия в разных местах - я делал чтобы окно всегда было в центре.

1)
C#:
Form form1 = new Form();
form1.StartPosition = FormStartPosition.CenterScreen;
2) Примерная конструкция. Набросал на коленке
C#:
F.KeyDown += new KeyPressEventHandler(delegate (object sender,System.Windows.Forms.KeyEventArgs e){

   if (e.KeyCode == Keys.Escape)
    {
        this.Close();
    }

});
 

stmult

Client
Регистрация
19.11.2013
Сообщения
96
Благодарностей
37
Баллы
18
По поводу открытия в разных местах - я делал чтобы окно всегда было в центре.

1)
C#:
Form form1 = new Form();
form1.StartPosition = FormStartPosition.CenterScreen;
2) Примерная конструкция. Набросал на коленке
C#:
F.KeyDown += new KeyPressEventHandler(delegate (object sender,System.Windows.Forms.KeyEventArgs e){

   if (e.KeyCode == Keys.Escape)
    {
        this.Close();
    }

});
спасибо за помощь. только у меня оба кода не хотят работать. Если не затруднит, скинь пожалуйста полный код для центрирования формы, может я что-то не так делаю. А код с эскейпом не так важен, сейчас хочется научиться выводить форму в одном месте, идеально было бы по координатам, например 100 пикселей сверху и слева отступ, но в центре тоже устроит. Я заметил что каждая форма открывается немного со смещением вниз и вправо, причем смещение это всегда одинаковое, открывается примерно 10 раз с этим смещением и на одиннадцатый раз открываться начинает с того же места в верхнем левом углу. Может надо какие-то данные обнулять, чтобы не было такого?
 

Radzhab

Client
Регистрация
23.05.2014
Сообщения
1 500
Благодарностей
1 268
Баллы
113
Посмотри мою статью про 2gis. Там реализовано много вещей с формами
 

stmult

Client
Регистрация
19.11.2013
Сообщения
96
Благодарностей
37
Баллы
18
Посмотри мою статью про 2gis. Там реализовано много вещей с формами
Спасибо за тему. Только в том твоем шаблоне форма тоже открывается каждый раз в новом месте, а не в центре
 

Err0r

Client
Регистрация
17.05.2015
Сообщения
157
Благодарностей
110
Баллы
43
Помогите пожалуйста, как сделать чтобы при нажатии на кнопку "Да" переменной присваивалось значение "Yes", а при нажатии на кнопку "Нет" присваивалось значение "No"?
Код:
System.Windows.Forms.Form F = new System.Windows.Forms.Form();
F.Text = "Наша форма";
//создаем кнопку
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);
//кидаем на форму
F.Controls.Add(button);
button.Click+= delegate(object sender, System.EventArgs e)
{
    F.Dispose();
};

System.Windows.Forms.Button button2 = new System.Windows.Forms.Button();
//задаем имя чекбоксам
button2.Text = "Нет";
//положение в окне
button2.Location = new System.Drawing.Point(150,50);
//размер кнопочки
button2.Size=new System.Drawing.Size(75, 75);
//кидаем на форму
F.Controls.Add(button2);
button2.Click+= delegate(object sender, System.EventArgs e)
{
    F.Dispose();
};

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

Radzhab

Client
Регистрация
23.05.2014
Сообщения
1 500
Благодарностей
1 268
Баллы
113
C#:
button.Click+= delegate(object sender, System.EventArgs e)
{
    project.Variables["Переменная1"].Value = "222222"; // вот присваиваем значение
    F.Dispose();
};
Аналогично и для второй кнопки
 

olga.armalita

Client
Регистрация
05.04.2014
Сообщения
194
Благодарностей
42
Баллы
28
Приветствую, помогите разобраться пожалуйста.
Скачал шаблон с сниппетами, запускаю и получаю ошибку:
Тип Время Сообщение
12:51:35 Компиляция кода Ошибка в действии "CS0266" "Неявное преобразование типа "System.Collections.Generic.List<string>" в "ZennoLab.InterfacesLibrary.ProjectModel.IZennoList" невозможно. Существует явное преобразование (возможно, отсутствует приведение)". [Строка: 25; Cтолбец: 10]
12:51:35 Компиляция кода Ошибка в действии "CS0103" "Имя "of" отсутствует в текущем контексте". [Строка: 22; Cтолбец: 5]
12:51:35 Компиляция кода Ошибка в действии "CS0103" "Имя "of" отсутствует в текущем контексте". [Строка: 26; Cтолбец: 36]
Копирую блок с кодом "чекбоксы" в другой шаблон где тоже есть блок с C#, и там он работает.
Почему так?
 

Nick

Client
Регистрация
22.07.2014
Сообщения
1 983
Благодарностей
817
Баллы
113
Если это два разных вопроса, то на первый ответ простой: ошибки в коде, которые нужно устранить. В другом проекте те или иные переменные могут быть по-другому объявлены, поэтому тот же код становится корректным. Сложно сказать больше.
 

olga.armalita

Client
Регистрация
05.04.2014
Сообщения
194
Благодарностей
42
Баллы
28
Фигня какая-то, только что снова попобовал, теперь работает.

В связи с этим другой вопрос можно ли вывести изображение в форму?
 

Porosenok

Client
Регистрация
26.09.2010
Сообщения
1 280
Благодарностей
96
Баллы
48
А можно сделать так, чтобы форма сама закрывалась например через минуту, если ничего юзер не нажал, и тогда какое-то значение по умолчанию чтобы возвращалось
 

goblin2oo8

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

1)
C#:
Form form1 = new Form();
form1.StartPosition = FormStartPosition.CenterScreen;
2) Примерная конструкция. Набросал на коленке
C#:
F.KeyDown += new KeyPressEventHandler(delegate (object sender,System.Windows.Forms.KeyEventArgs e){

   if (e.KeyCode == Keys.Escape)
    {
        this.Close();
    }

});
спасибо за помощь. только у меня оба кода не хотят работать. Если не затруднит, скинь пожалуйста полный код для центрирования формы, может я что-то не так делаю. А код с эскейпом не так важен, сейчас хочется научиться выводить форму в одном месте, идеально было бы по координатам, например 100 пикселей сверху и слева отступ, но в центре тоже устроит. Я заметил что каждая форма открывается немного со смещением вниз и вправо, причем смещение это всегда одинаковое, открывается примерно 10 раз с этим смещением и на одиннадцатый раз открываться начинает с того же места в верхнем левом углу. Может надо какие-то данные обнулять, чтобы не было такого?
Тоже ломал голову над 1 (По поводу открытия в разных местах)
Эта строчка
Код:
form1.StartPosition = FormStartPosition.CenterScreen;
Должна быть такой
Код:
form1.StartPosition = System.Windows.Forms.FormStartPosition.CenterScreen;
 
Последнее редактирование:

art

Пользователь
Регистрация
24.03.2015
Сообщения
69
Благодарностей
1
Баллы
8
Cупер! Буду изучать..как раз хотел C# pаняться вплотную!
 

zennoX

Client
Регистрация
05.04.2014
Сообщения
484
Благодарностей
134
Баллы
43

AlexSokolskih

Новичок
Регистрация
24.12.2015
Сообщения
10
Благодарностей
0
Баллы
1
Подскажите а в Демо версии можно работать с С#, не получается запустить скаченный здесь проект. Нет режима отладки C# в проектменеджере.
 

zennoX

Client
Регистрация
05.04.2014
Сообщения
484
Благодарностей
134
Баллы
43

ZennoScript

Moderator
Регистрация
04.03.2011
Сообщения
4 451
Благодарностей
1 885
Баллы
113
Подскажите а в Демо версии можно работать с С#, не получается запустить скаченный здесь проект. Нет режима отладки C# в проектменеджере.
Отладки нет не в демке. Её убрали вообще из программы. А в демке код работает ровно так же, как и в полной версии программы.
 

SilverSun

Client
Регистрация
31.10.2013
Сообщения
172
Благодарностей
24
Баллы
18
6) Листбоксы
Код инициализации
Код:
//создаем листбокс
System.Windows.Forms.ListBox listb = new System.Windows.Forms.ListBox();
//указываем его размеры
listb.Width=150;
listb.Height=150;
//Указываем положение на форме
listb.Location = new System.Drawing.Point(30,30);
//кидаем на форму
F.Controls.Add(listb);
Посмотреть вложение 5338

Как вставить в листбокс свои элементы.
Код:
//указываем список, в котором лежат нужные нам значения
var list = project.Lists["Список 1"];
// первый вариант наполнения
foreach(string data in list)//для каждой строки data в списке list
{
    listb.Items.Add(data);//добавить объект на листбокс
}
Или так
Код:
//указываем список, в котором лежат нужные нам значения
var list = project.Lists["Список 1"];
// второй вариант наполнения
listb.Items.AddRange(list.ToArray());
При помощи этого кода – мы получаем выбранное значение
Код:
//получаем значение в переменную
project.Variables["test"].Value = listb.SelectedItem.ToString();
//или так
return listb.SelectedItem;
Посмотреть вложение 5339
Подскажите, пожалуйста, как сделать так, что бы в полученном результате, была возможность выбрать не одну строку, а несколько, зажав кнопку ctrl ?
 

djshahlik

Пользователь
Регистрация
19.10.2015
Сообщения
32
Благодарностей
0
Баллы
6
Ребят подскажите ! Сделал копипастом код из мануала .... Форму рисует а вот кнопку или текст не делает.
 

MaxVM

Пользователь
Регистрация
20.01.2016
Сообщения
34
Благодарностей
2
Баллы
8
Здравствуйте! Подскажите кто пробовал открыть свой фаил. У кого работает? Очень нужно. Не как я не могу понять в чем проблема!!!
Спасибо
 

evgen2522

Client
Регистрация
08.01.2016
Сообщения
470
Благодарностей
106
Баллы
43
4) Радиобаттоны

Код с комментариями
Код:
//создаем первый радиобаттон
System.Windows.Forms.RadioButton rb1 = new System.Windows.Forms.RadioButton();
//присваиваем значение
rb1.Text="кнопочка 1";
//говорим куда поставить
rb1.Location = new System.Drawing.Point(5,5);
//добавляем rb1 на форму
F.Controls.Add(rb1);
Посмотреть вложение 5326
Думаю, не секрет, что одного будет маловато) и нам нужно еще парочку

Код:
//создаем первый радиобаттон
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();

//присваиваем значение
rb1.Text="кнопочка 1";
rb2.Text="кнопочка 2";
rb3.Text="кнопочка 3";
//говорим куда поставить
rb1.Location = new System.Drawing.Point(5,5);
rb2.Location = new System.Drawing.Point(5,25);
rb3.Location = new System.Drawing.Point(5,45);
//добавляем rb1 на форму
F.Controls.Add(rb1);
//добавляем rb2 на форму
F.Controls.Add(rb2);
//добавляем rb3 на форму
F.Controls.Add(rb3);
Посмотреть вложение 5327
[/CODE]
Подскажите пожалуйста как сделать что бы по клику на радиобаттон форма закрывалась сама а не по клику по крестику
 

MaxVM

Пользователь
Регистрация
20.01.2016
Сообщения
34
Благодарностей
2
Баллы
8
Подскажите пожалуйста как сделать что бы по клику на радиобаттон форма закрывалась сама а не по клику по крестику
Ну наверное дописать нуна

  1. button.Click+= delegate(object sender, System.EventArgs e)
  2. {
  3. F.Dispose();
  4. };
 

evgen2522

Client
Регистрация
08.01.2016
Сообщения
470
Благодарностей
106
Баллы
43
Ну наверное дописать нуна

  1. button.Click+= delegate(object sender, System.EventArgs e)
  2. {
  3. F.Dispose();
  4. };
System.Windows.Forms.Form F = new System.Windows.Forms.Form();

F.Text = "Вставка IP";
// по верх всех окон
F.TopMost = true;
//создаем радиобаттоны
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 grbox1 = new System.Windows.Forms.GroupBox();

//назовем наши группы
grbox1.Text = "IP";

//говорим куда поставить групбоксы
grbox1.Location = new System.Drawing.Point(50,50);

//разрешаем им тянуться до подходящего размера
grbox1.AutoSize=true;

//добавляем радиобаттоны на групбокс1
grbox1.Controls.Add(rb1);
grbox1.Controls.Add(rb2);


//добавляем групбоксы на форму
F.Controls.Add(grbox1);

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


//Забираем значения в наши переменные

//Делаем цикл, в котором будут перебраны все значения от 0 до grbox1.Controls.Count
//grbox2.Controls.Count - это количество наших радиобаттонов, которые мы в него положили
//При этом при переборе - текущее значение - 0,1,2,3 или другое, будет находится в переменной i
for(int i=0;i<grbox1.Controls.Count;i++)
{
if( (((System.Windows.Forms.RadioButton)grbox1.Controls).Checked==true))
{
//устанавливаем значение переменной тест
project.Variables["a4"].Value=grbox1.Controls.Text;
//либо, если раскомментировать строку ниже - можно установить число а не значение
//project.Variables["test"].Value=i.ToString();
}
}


return 0;
И куда в этот код его вставить не получается что то
 

botreg

Пользователь
Регистрация
06.01.2016
Сообщения
149
Благодарностей
25
Баллы
18
А как на одну форму закинуть текстбокс+кнопку (инфа из текстбокса идет в переменную, а кнопка просто закрывает окно) ?
 

botreg

Пользователь
Регистрация
06.01.2016
Сообщения
149
Благодарностей
25
Баллы
18
Ну помогите мне, пожалуйста:-)
 

evgen2522

Client
Регистрация
08.01.2016
Сообщения
470
Благодарностей
106
Баллы
43
в этой теме что то не много желающих помочь
 

SilverSun

Client
Регистрация
31.10.2013
Сообщения
172
Благодарностей
24
Баллы
18
А как на одну форму закинуть текстбокс+кнопку (инфа из текстбокса идет в переменную, а кнопка просто закрывает окно) ?
Код:
System.Windows.Forms.Form F = new System.Windows.Forms.Form();
F.Text = "Форма";

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

//создаем кнопку
System.Windows.Forms.Button button = new System.Windows.Forms.Button();
//задаем имя чекбоксам
button.Text = "Кнопка";
//положение в окне
button.Location = new System.Drawing.Point(110,10);
//размер кнопочки
button.Size=new System.Drawing.Size(80, 30);
//кидаем на форму
F.Controls.Add(button);
//описываем событие для клика по кнопке
button.Click+= delegate(object sender, System.EventArgs e)
{
   project.Variables["Text"].Value = textb.Text;
     F.Dispose();
};


//отрисовываем форму
F.ShowDialog();
//или возвращаем в переменную по умолчанию
return textb.Text;
 

Aviatikor

Client
Регистрация
30.01.2016
Сообщения
91
Благодарностей
30
Баллы
18
Тс спасибо за топик, много полезного для себя нашёл !
 

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