О каком снипете речь ? Разговор про MessageBox на c# из этой темытак поделитесь приятным сниппетом
По поводу открытия в разных местах - я делал чтобы окно всегда было в центре.Как сделать, чтобы форма открывалась в определенном месте на рабочем столе? У меня каждый раз в новой точке открывается. Пробовал через Form.DesktopLocation не получается. И второй вопрос, можно ли задать на escape - закрытие формы, как при нажатии крестика, без создания дополнительных кнопок в форме?
Form form1 = new Form();
form1.StartPosition = FormStartPosition.CenterScreen;
F.KeyDown += new KeyPressEventHandler(delegate (object sender,System.Windows.Forms.KeyEventArgs e){
if (e.KeyCode == Keys.Escape)
{
this.Close();
}
});
спасибо за помощь. только у меня оба кода не хотят работать. Если не затруднит, скинь пожалуйста полный код для центрирования формы, может я что-то не так делаю. А код с эскейпом не так важен, сейчас хочется научиться выводить форму в одном месте, идеально было бы по координатам, например 100 пикселей сверху и слева отступ, но в центре тоже устроит. Я заметил что каждая форма открывается немного со смещением вниз и вправо, причем смещение это всегда одинаковое, открывается примерно 10 раз с этим смещением и на одиннадцатый раз открываться начинает с того же места в верхнем левом углу. Может надо какие-то данные обнулять, чтобы не было такого?По поводу открытия в разных местах - я делал чтобы окно всегда было в центре.
1)
2) Примерная конструкция. Набросал на коленкеC#:Form form1 = new Form(); form1.StartPosition = FormStartPosition.CenterScreen;
C#:F.KeyDown += new KeyPressEventHandler(delegate (object sender,System.Windows.Forms.KeyEventArgs e){ if (e.KeyCode == Keys.Escape) { this.Close(); } });
Спасибо за тему. Только в том твоем шаблоне форма тоже открывается каждый раз в новом месте, а не в центреПосмотри мою статью про 2gis. Там реализовано много вещей с формами
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;
button.Click+= delegate(object sender, System.EventArgs e)
{
project.Variables["Переменная1"].Value = "222222"; // вот присваиваем значение
F.Dispose();
};
Копирую блок с кодом "чекбоксы" в другой шаблон где тоже есть блок с C#, и там он работает.Тип Время Сообщение
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]
По поводу открытия в разных местах - я делал чтобы окно всегда было в центре.
1)
2) Примерная конструкция. Набросал на коленкеC#:Form form1 = new Form(); form1.StartPosition = FormStartPosition.CenterScreen;
C#:F.KeyDown += new KeyPressEventHandler(delegate (object sender,System.Windows.Forms.KeyEventArgs e){ if (e.KeyCode == Keys.Escape) { this.Close(); } });
Тоже ломал голову над 1 (По поводу открытия в разных местах)спасибо за помощь. только у меня оба кода не хотят работать. Если не затруднит, скинь пожалуйста полный код для центрирования формы, может я что-то не так делаю. А код с эскейпом не так важен, сейчас хочется научиться выводить форму в одном месте, идеально было бы по координатам, например 100 пикселей сверху и слева отступ, но в центре тоже устроит. Я заметил что каждая форма открывается немного со смещением вниз и вправо, причем смещение это всегда одинаковое, открывается примерно 10 раз с этим смещением и на одиннадцатый раз открываться начинает с того же места в верхнем левом углу. Может надо какие-то данные обнулять, чтобы не было такого?
form1.StartPosition = FormStartPosition.CenterScreen;
form1.StartPosition = System.Windows.Forms.FormStartPosition.CenterScreen;
Время можно не только с локал компа тянуть, но и с внешки,И что стоит поменять время на компе )?
Отсутствие режима отладки C# не влияет на работоспособность сниппетаНет режима отладки C# в проектменеджере.
Отладки нет не в демке. Её убрали вообще из программы. А в демке код работает ровно так же, как и в полной версии программы.Подскажите а в Демо версии можно работать с С#, не получается запустить скаченный здесь проект. Нет режима отладки C# в проектменеджере.
Подскажите, пожалуйста, как сделать так, что бы в полученном результате, была возможность выбрать не одну строку, а несколько, зажав кнопку ctrl ?6) Листбоксы
Код инициализации
Посмотреть вложение 5338Код://создаем листбокс 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);
Как вставить в листбокс свои элементы.
Или такКод://указываем список, в котором лежат нужные нам значения 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());
Посмотреть вложение 5339Код://получаем значение в переменную project.Variables["test"].Value = listb.SelectedItem.ToString(); //или так return listb.SelectedItem;
Подскажите пожалуйста как сделать что бы по клику на радиобаттон форма закрывалась сама а не по клику по крестику4) Радиобаттоны
Код с комментариями
Посмотреть вложение 5326Код://создаем первый радиобаттон 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);
Думаю, не секрет, что одного будет маловато) и нам нужно еще парочку
Посмотреть вложение 5327Код://создаем первый радиобаттон 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);
[/CODE]
Ну наверное дописать нунаПодскажите пожалуйста как сделать что бы по клику на радиобаттон форма закрывалась сама а не по клику по крестику
System.Windows.Forms.Form F = new System.Windows.Forms.Form();Ну наверное дописать нуна
- button.Click+= delegate(object sender, System.EventArgs e)
- {
- F.Dispose();
- };
А как на одну форму закинуть текстбокс+кнопку (инфа из текстбокса идет в переменную, а кнопка просто закрывает окно) ?
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;