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

Неа. Не пашет.

Переменная 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
Залез посмотрел ,color ведь струткура и у нее уже есть назначенные параметры цветов Посмотреть вложение 92557
Соответственно нужно организовать выбор через switch в котрый помещена перменная , и я вижу назначить из вне походу нельзя так как проперти только get(т.е получить)Посмотреть вложение 92558
За помощь благодарю, но честно сказать ничего не понял. Из переменной нельзя взять цвет и в код вставить?
 
За помощь благодарю, но честно сказать ничего не понял. Из переменной нельзя взять цвет и в код вставить?
Честно говоря я исходя из своего оптыа только говорю, поэтому скорее втсавить нет , а организовать выбор - да
 
  • Спасибо
Реакции: loka23
подскажите почему не запускает
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;
 
Код:
Развернуть Свернуть Копировать
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


Помогите исправить.
 
Здравствуйте!

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

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

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

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


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


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

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

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

Мне нужно два окна 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
форма без потока создавшего его и осуществляющего управление не будет работать.
что бы были 2 независимые формы, нужно иметь 2 независимых запущенных потока.
тут 2 варианта. либо это будут 2 отдельных потока зенки в ее исполнении (ну 2 потока шаблона по зенковски)
либо, внутри шаблона, надо создать и запустить 2 асинхронных от шаблона потоков кода, которые уже создадут и удержат формы. ну и передачу данных из формы и обратно и из потока в шаблон, тоже в них надо реализовать.

а ну и еще есть самый простой вариант, создать 2 обычных приложения винформ и передавать туда/сюда данные через базу данных. подойдет даже простая локальная sqlite
Мне кажется должен быть все-таки вариант в одном потоке...
 
Мне кажется должен быть все-таки вариант в одном потоке...
никто не запрещает ставить эксперименты.
в этой же теме кто то уже пробовал создавать независимые формы. https://zennolab.com/discussion/thr...i-windows-cherez-snippety-c.13416/post-478838
думается через запуск отдельного асинхронного потока. смотрели его решение ?
 
  • Спасибо
Реакции: lx2003
никто не запрещает ставить эксперименты.
в этой же теме кто то уже пробовал создавать независимые формы. https://zennolab.com/discussion/thr...i-windows-cherez-snippety-c.13416/post-478838
думается через запуск отдельного асинхронного потока. смотрели его решение ?

За цените тестовый вариант. форма живущая параллельно потоку :-)


Почти то, что надо! Только хотелось бы внутри одного кубика с кодом C#, и иметь возможность, чтобы далее можно было бы открывать сразу два и более окон
 
Почти то, что надо! Только хотелось бы внутри одного кубика с кодом C#, и иметь возможность, чтобы далее можно было бы открывать сразу два и более окон
там код открытый. эксперементируйте.
 
  • Спасибо
Реакции: lx2003
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
Спасибо! Как сделать листбокс с множественным выбором (лист чек бокс)?
 

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