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

Azakim

Client
Регистрация
25.07.2021
Сообщения
165
Благодарностей
31
Баллы
28
Неа. Не пашет.

Переменная color - System.Drawing.Color.Red
perem.ForeColor = project.Variables["color"].Value;





Надо бы как то наверное правильно записать... только вот знаний нет. Пробую - не получается.
perem.ForeColor = System.Drawing.Color.(project.Variables["color"].Value);
Залез посмотрел ,color ведь струткура и у нее уже есть назначенные параметры цветов
92557

Соответственно нужно организовать выбор через switch в котрый помещена перменная , и я вижу назначить из вне походу нельзя так как проперти только get(т.е получить)
92558
 
  • Спасибо
Реакции: loka23

loka23

Client
Регистрация
02.08.2019
Сообщения
134
Благодарностей
10
Баллы
18
Залез посмотрел ,color ведь струткура и у нее уже есть назначенные параметры цветов Посмотреть вложение 92557
Соответственно нужно организовать выбор через switch в котрый помещена перменная , и я вижу назначить из вне походу нельзя так как проперти только get(т.е получить)Посмотреть вложение 92558
За помощь благодарю, но честно сказать ничего не понял. Из переменной нельзя взять цвет и в код вставить?
 

Azakim

Client
Регистрация
25.07.2021
Сообщения
165
Благодарностей
31
Баллы
28
За помощь благодарю, но честно сказать ничего не понял. Из переменной нельзя взять цвет и в код вставить?
Честно говоря я исходя из своего оптыа только говорю, поэтому скорее втсавить нет , а организовать выбор - да
 
  • Спасибо
Реакции: loka23

goldbase1

Client
Регистрация
19.12.2020
Сообщения
91
Благодарностей
14
Баллы
8
подскажите почему не запускает
7.7.1.0
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,30);
// добавляем его на форму
F.Controls.Add(textb);

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


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

socsecret.ru

Client
Регистрация
30.09.2017
Сообщения
346
Благодарностей
209
Баллы
43
Код:
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;
Использую форму из этого поста, всё работает, но буквально через несколько отрисовок формы зенка закрывается по ошибке:
108768


Помогите исправить.
 

lx2003

Client
Регистрация
15.02.2021
Сообщения
606
Благодарностей
144
Баллы
43

lx2003

Client
Регистрация
15.02.2021
Сообщения
606
Благодарностей
144
Баллы
43
Здравствуйте!

Может кто подсказать?

Мне нужно два окна winforms, которые оба будут открыты одновременно.

Чтобы оба были открыты одновременно
, необходимо использовать не модальный тип окон.

Пока тестирую на одном окне.
Для того, чтобы получить не модальный тип окна winforms использую функцию
Открывает форму как не модальное окно:
F.TopMost = true; // делает форму F поверх всех окон
F.Show(); // открывает форму F как не модальное окно

Для того, чтобы окно не закрывалось после исполнения, предложена функция
Отменяем закрытие формы с помощью OnFormClosing:
protected override void OnFormClosing(FormClosingEventArgs e)
{
// отменяем закрытие формы
e.Cancel = true;
}

Но код выполняется с ошибкой.

Что можно сделать и как правильно все это прописать?
Подскажите, пожалуйста.
 

Ахилес

Client
Read only
Регистрация
11.11.2020
Сообщения
956
Благодарностей
392
Баллы
63
Здравствуйте!

Может кто подсказать?

Мне нужно два окна winforms, которые оба будут открыты одновременно.

Чтобы оба были открыты одновременно
, необходимо использовать не модальный тип окон.

Пока тестирую на одном окне.
Для того, чтобы получить не модальный тип окна winforms использую функцию
Открывает форму как не модальное окно:
F.TopMost = true; // делает форму F поверх всех окон
F.Show(); // открывает форму F как не модальное окно

Для того, чтобы окно не закрывалось после исполнения, предложена функция
Отменяем закрытие формы с помощью OnFormClosing:
protected override void OnFormClosing(FormClosingEventArgs e)
{
// отменяем закрытие формы
e.Cancel = true;
}

Но код выполняется с ошибкой.

Что можно сделать и как правильно все это прописать?
Подскажите, пожалуйста.
форма без потока создавшего его и осуществляющего управление не будет работать.
что бы были 2 независимые формы, нужно иметь 2 независимых запущенных потока.
тут 2 варианта. либо это будут 2 отдельных потока зенки в ее исполнении (ну 2 потока шаблона по зенковски)
либо, внутри шаблона, надо создать и запустить 2 асинхронных от шаблона потоков кода, которые уже создадут и удержат формы. ну и передачу данных из формы и обратно и из потока в шаблон, тоже в них надо реализовать.

а ну и еще есть самый простой вариант, создать 2 обычных приложения винформ и передавать туда/сюда данные через базу данных. подойдет даже простая локальная sqlite
 
  • Спасибо
Реакции: lx2003

lx2003

Client
Регистрация
15.02.2021
Сообщения
606
Благодарностей
144
Баллы
43
форма без потока создавшего его и осуществляющего управление не будет работать.
что бы были 2 независимые формы, нужно иметь 2 независимых запущенных потока.
тут 2 варианта. либо это будут 2 отдельных потока зенки в ее исполнении (ну 2 потока шаблона по зенковски)
либо, внутри шаблона, надо создать и запустить 2 асинхронных от шаблона потоков кода, которые уже создадут и удержат формы. ну и передачу данных из формы и обратно и из потока в шаблон, тоже в них надо реализовать.

а ну и еще есть самый простой вариант, создать 2 обычных приложения винформ и передавать туда/сюда данные через базу данных. подойдет даже простая локальная sqlite
Мне кажется должен быть все-таки вариант в одном потоке...
 

Ахилес

Client
Read only
Регистрация
11.11.2020
Сообщения
956
Благодарностей
392
Баллы
63
Мне кажется должен быть все-таки вариант в одном потоке...
никто не запрещает ставить эксперименты.
в этой же теме кто то уже пробовал создавать независимые формы. https://zennolab.com/discussion/threads/sozdanie-i-rabota-s-sobstvennymi-formami-oknami-windows-cherez-snippety-c.13416/post-478838
думается через запуск отдельного асинхронного потока. смотрели его решение ?
 
  • Спасибо
Реакции: lx2003

lx2003

Client
Регистрация
15.02.2021
Сообщения
606
Благодарностей
144
Баллы
43
никто не запрещает ставить эксперименты.
в этой же теме кто то уже пробовал создавать независимые формы. https://zennolab.com/discussion/threads/sozdanie-i-rabota-s-sobstvennymi-formami-oknami-windows-cherez-snippety-c.13416/post-478838
думается через запуск отдельного асинхронного потока. смотрели его решение ?
За цените тестовый вариант. форма живущая параллельно потоку :-)

Почти то, что надо! Только хотелось бы внутри одного кубика с кодом C#, и иметь возможность, чтобы далее можно было бы открывать сразу два и более окон
 

Ахилес

Client
Read only
Регистрация
11.11.2020
Сообщения
956
Благодарностей
392
Баллы
63
Почти то, что надо! Только хотелось бы внутри одного кубика с кодом C#, и иметь возможность, чтобы далее можно было бы открывать сразу два и более окон
там код открытый. эксперементируйте.
 
  • Спасибо
Реакции: lx2003
Регистрация
19.12.2015
Сообщения
288
Благодарностей
36
Баллы
28
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
Спасибо! Как сделать листбокс с множественным выбором (лист чек бокс)?
 

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