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

baimkin

Client
Регистрация
04.08.2015
Сообщения
283
Благодарностей
111
Баллы
43
Спасибо вам большое!

Чутка исправленный код кому вдруг пригодится:
Код:
//пишем, что у нас там будет при клике
button.Click+= delegate(object sender, System.EventArgs e)
{
        {
    for(int i =0;i<list.Count;i++)
    {
    if(list[i].Contains(combobox.Text))
    {
   
            project.Variables["catalog"].Value = i.ToString();
            break;
                    }
            }
    }
string s = project.Variables["failDliaProverki"].Value;
string z = project.Variables["catalog"].Value;
if (s != "" & z != "0") F.Close();
else System.Windows.Forms.MessageBox.Show("Неполные данные");
};
 

goblin2oo8

Client
Регистрация
27.08.2013
Сообщения
93
Благодарностей
95
Баллы
18
Спасибо вам большое!

Чутка исправленный код кому вдруг пригодится:
Код:
//пишем, что у нас там будет при клике
button.Click+= delegate(object sender, System.EventArgs e)
{
        {
    for(int i =0;i<list.Count;i++)
    {
    if(list[i].Contains(combobox.Text))
    {
  
            project.Variables["catalog"].Value = i.ToString();
            break;
                    }
            }
    }
string s = project.Variables["failDliaProverki"].Value;
string z = project.Variables["catalog"].Value;
if (s != "" & z != "0") F.Close();
else System.Windows.Forms.MessageBox.Show("Неполные данные");
};
Рад что помог)
 

baimkin

Client
Регистрация
04.08.2015
Сообщения
283
Благодарностей
111
Баллы
43
Новая проблема появилась, все никак не могу получить данные из календаря в текстовую форму, подскажите пожалуйста кто знает.

Код:
//календурь
System.Windows.Forms.MonthCalendar calendur = new System.Windows.Forms.MonthCalendar();
calendur.Location = new System.Drawing.Point(150,10);
F.Controls.Add(calendur);

System.Windows.Forms.TextBox textbox1 = new System.Windows.Forms.TextBox();
textbox1.Location = new System.Drawing.Point(10,10);
textbox1.Text = calendur.DateSelected.ToString(); //тут я что то делаю совсем не так как надо
F.Controls.Add(textbox1);
 

RoyalBank

Client
Регистрация
07.09.2015
Сообщения
557
Благодарностей
550
Баллы
93
Всем привет, как можно реализовать таймер обратного отсчета, который по истечению заданного интервала времени будет переводить заданную кнопку/поле на форме/окне в состояние неактивной.
 

Aviatikor

Client
Регистрация
30.01.2016
Сообщения
91
Благодарностей
30
Баллы
18
Новая проблема появилась, все никак не могу получить данные из календаря в текстовую форму, подскажите пожалуйста кто знает.

Код:
//календурь
System.Windows.Forms.MonthCalendar calendur = new System.Windows.Forms.MonthCalendar();
calendur.Location = new System.Drawing.Point(150,10);
F.Controls.Add(calendur);

System.Windows.Forms.TextBox textbox1 = new System.Windows.Forms.TextBox();
textbox1.Location = new System.Drawing.Point(10,10);
textbox1.Text = calendur.DateSelected.ToString(); //тут я что то делаю совсем не так как надо
F.Controls.Add(textbox1);
Может такой вариант пригодиться или что-то возмёшь от сюда:
Код:
System.Windows.Forms.Form F = new System.Windows.Forms.Form();
F.StartPosition = System.Windows.Forms.FormStartPosition.CenterScreen;
F.Width = 350;    //- задает ширину формы в пикселях
F.Height = 250;    //- задает высоту формы в пикселях
F.Text = "Выбор даты и время";

//создаем календарь
System.Windows.Forms.DateTimePicker datapick = new System.Windows.Forms.DateTimePicker();
datapick.Location = new System.Drawing.Point(50,50);
datapick.Format = System.Windows.Forms.DateTimePickerFormat.Custom;
datapick.CustomFormat = "dd.MM.yyyy HH:mm";
F.Controls.Add(datapick);

//создаем кнопку
System.Windows.Forms.Button button1 = new System.Windows.Forms.Button();
button1.Text = "Готово!";
button1.Location = new System.Drawing.Point(100,100);
button1.Size=new System.Drawing.Size(100, 40);
F.Controls.Add(button1);
button1.Click+= delegate(object sender, System.EventArgs e)    {
            F.Dispose();
    project.Variables["date"].Value = Convert.ToString(datapick.Value);
    };

//запускаем форму
F.ShowDialog();
 
  • Спасибо
Реакции: baimkin

baimkin

Client
Регистрация
04.08.2015
Сообщения
283
Благодарностей
111
Баллы
43
Решил еще добавить функционала, но опять сам не могу додумать как сделать, есть определенное количество переменных, надо на каждую переменную динамически добавить элементы на форму, пример:

Переменная 1
Переменная 2
Переменная 3
нужно чтоб на каждую переменную добавились элементы, и они росли вниз по горизонтали, что то вроде такого:
upload_2016-4-25_12-48-26.png


Подскажите пожалуйста на небольшом примере.

Из того что сам попытался сделать:
Код:
//по клику сделать переменную с числом, и создать панель с названием этого числа
button.Click+= delegate(object sender, System.EventArgs e)
{
    int i = 1;
    i = i + 1;
        i.ToString();
    {
        System.Windows.Forms.DateTimePicker i = new System.Windows.Forms.DateTimePicker();
        i.Width = 150;
        i.Location = new System.Drawing.Point(215,10);
        F.Controls.Add(i);
    }
  
};
но чет не работает
 
Последнее редактирование:

ermax

Client
Регистрация
06.10.2012
Сообщения
142
Благодарностей
51
Баллы
28
delete
 
Последнее редактирование:

olga.armalita

Client
Регистрация
05.04.2014
Сообщения
194
Благодарностей
42
Баллы
28
Обновился, и опять 25. Не ни один сниппет не работает:(

Код:
System.Windows.Forms.Form F = new System.Windows.Forms.Form();
F.Text = "Наша форма";
F.ShowDialog();
return 0;
17:33:53 Компиляция кода Ошибка в действии "CS0103" "Имя "F" отсутствует в текущем контексте". [Строка: 9; Cтолбец: 5]
 
Последнее редактирование:

Hool

Client
Регистрация
27.03.2015
Сообщения
65
Благодарностей
6
Баллы
8
такая же проблема
 

goblin2oo8

Client
Регистрация
27.08.2013
Сообщения
93
Благодарностей
95
Баллы
18
Че каве :ar:
Специально запустил ПМ, создал чистый проект, скопировал код выше в сниппет
Код:
System.Windows.Forms.Form F = new System.Windows.Forms.Form();
F.Text = "Наша форма";
F.ShowDialog();
return 0;
всё робит ребята http://scr.kinosik.ru/2016-06-20_144927.jpg
 

olga.armalita

Client
Регистрация
05.04.2014
Сообщения
194
Благодарностей
42
Баллы
28
Че каве :ar:
Специально запустил ПМ, создал чистый проект, скопировал код выше в сниппет
Код:
System.Windows.Forms.Form F = new System.Windows.Forms.Form();
F.Text = "Наша форма";
F.ShowDialog();
return 0;
всё робит ребята http://scr.kinosik.ru/2016-06-20_144927.jpg
Ага, если создать чистый проект, тогда работает, а вот в приложенном в первом посте, а иногда и скопированный в уже готовый проект, сниппет
работать не хочет.
 

baimkin

Client
Регистрация
04.08.2015
Сообщения
283
Благодарностей
111
Баллы
43
Там вроде в одном из снипетов ошибка есть из за этого блокируется работа всех снипетов проекта.
 

Hozy

Client
Регистрация
06.03.2016
Сообщения
146
Благодарностей
12
Баллы
18
Доброго времени суток уважаемые!
Подскажите, как реализовать выбор файла с передачей его пути в переменную?
 

baimkin

Client
Регистрация
04.08.2015
Сообщения
283
Благодарностей
111
Баллы
43
Доброго времени суток уважаемые!
Подскажите, как реализовать выбор файла с передачей его пути в переменную?
Код:
//создаем форму
System.Windows.Forms.Form F = new System.Windows.Forms.Form();
F.AutoSize=true;
F.TopMost=true;

//создаем кнопку
System.Windows.Forms.Button button2 = new System.Windows.Forms.Button();
button2.Text = "Выберите файл";
button2.Location = new System.Drawing.Point(30,20);
button2.AutoSize=true;
System.Windows.Forms.OpenFileDialog of = new System.Windows.Forms.OpenFileDialog();
F.Controls.Add(button2);

//устанавливаем директорию по умолчанию
of.InitialDirectory = "E:\\Загрузки" ;
//устанавливаем фильтр, какие файлы нас интересуют, и как их называть
of.Filter = "exel files (*.xls*)|*.xls*|All files (*.*)|*.*" ;

//пишем, что у нас там будет при клике
button2.Click+=delegate(object sender, System.EventArgs e)
{
    if(of.ShowDialog() == System.Windows.Forms.DialogResult.OK)
    {
        F.Show();
        project.Variables["FileName"].Value = of.FileName;
        }
};

//показываем форму
F.ShowDialog();
 
  • Спасибо
Реакции: ramzes8 и Hozy

Hozy

Client
Регистрация
06.03.2016
Сообщения
146
Благодарностей
12
Баллы
18
Спасибо, попробую.
 
Регистрация
15.05.2016
Сообщения
45
Благодарностей
5
Баллы
8
Так как всё-таки делать всплывающую форму по центру экрана? Подскажите пожалуйста. Например, у меня такой код
Код:
// создаём форму с указанным значением
var dialogForm = new System.Windows.Forms.Form 
{
    Size = new Size(250, 166),
    ShowIcon = false,
    Name = "DialogForm",
    Text = @"Окно для ввода смс кода",
    FormBorderStyle = System.Windows.Forms.FormBorderStyle.FixedDialog,
    MinimizeBox = false,
    MaximizeBox = false
};
// поле ввода
var textBox = new System.Windows.Forms.TextBox { Name = "Text", Size = new Size(80, 20), Multiline = true};
// кладём на форму
dialogForm.Controls.Add(textBox);
// положение на форме
textBox.Location = new Point(84, 42);
var testLabel = new System.Windows.Forms.Label
{
    AutoSize = true,
    Font = new System.Drawing.Font("Microsoft Sans Serif", 9.00F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, 204),
    Location = new System.Drawing.Point(8, 12),
    Text = "Введите ваш код подтверждения"
};
dialogForm.Controls.Add(testLabel);
// устанавливаем значение в переменную
project.Variables["sms_code"].Value = textBox.Text;
// кнопка ok
var okButton = new System.Windows.Forms.Button { Name = "OKButton", Text = @"Добавить SMS код", Size = new Size(234, 56) };
// кладём не форму
dialogForm.Controls.Add(okButton);
// положение на форме
okButton.Location = new Point(5, 80);
// обработка события
okButton.Click += (delegate { dialogForm.DialogResult = System.Windows.Forms.DialogResult.OK; });
// показывем форму
var dialogResult = dialogForm.ShowDialog();
// если не было отмены диалога
if (dialogResult != System.Windows.Forms.DialogResult.Cancel) return textBox.Text;
return 0;
 
  • Спасибо
Реакции: Oleg-KC

evgen2522

Client
Регистрация
08.01.2016
Сообщения
470
Благодарностей
106
Баллы
43
Это позволит выбрать локацию форы в любом удобном месте
Название формы.StartPosition = System.Windows.Forms.FormStartPosition.Manual;
Название формы.Location = new Point(10, 100);
 
  • Спасибо
Реакции: Marcelo
Регистрация
15.05.2016
Сообщения
45
Благодарностей
5
Баллы
8
Это позволит выбрать локацию форы в любом удобном месте
Название формы.StartPosition = System.Windows.Forms.FormStartPosition.Manual;
Название формы.Location = new Point(10, 100);
А ты можешь подсказать, какое название формы в моём коде? Или как это название сделать?
 

evgen2522

Client
Регистрация
08.01.2016
Сообщения
470
Благодарностей
106
Баллы
43
А ты можешь подсказать, какое название формы в моём коде? Или как это название сделать?
Я не очень силен в си шарпе но думаю будет работать если между 4 и 10 строкой вписать это
StartPosition = System.Windows.Forms.FormStartPosition.Manual;
Location = new Point(10, 100);
если не будет работать воткни после 2 строчки
 

Hozy

Client
Регистрация
06.03.2016
Сообщения
146
Благодарностей
12
Баллы
18
Доброго времени суток уважаемые.
Помогите решить проблему:
При запуске шаблона, загружается профиль, после чего открывается форма с веббраузером.
Внимание вопрос! Как передать этой форме куки из профиля?

А то открывается страничка, на которой написано что браузер старый, пользуйтесь другим. С ВКонтакте работаю.

Код:
System.Windows.Forms.Form F = new System.Windows.Forms.Form();
F.Text = "Форма редактирования";
F.TopMost = true;
F.StartPosition = System.Windows.Forms.FormStartPosition.CenterParent;
F.Width = 740;
F.Height = 720;
System.Windows.Forms.WebBrowser webb = new System.Windows.Forms.WebBrowser();   
webb.Url = new Uri(@"http://vk.com/");
webb.Width = 720;
webb.Height = 700;

F.Controls.Add(webb);
   
F.ShowDialog();
return 0;
 
Последнее редактирование:

Hozy

Client
Регистрация
06.03.2016
Сообщения
146
Благодарностей
12
Баллы
18
Или как сделать, что бы окно инстанса автоматически открывалось?
 

doc

Client
Регистрация
30.03.2012
Сообщения
8 684
Благодарностей
4 641
Баллы
113

Hozy

Client
Регистрация
06.03.2016
Сообщения
146
Благодарностей
12
Баллы
18

doc

Client
Регистрация
30.03.2012
Сообщения
8 684
Благодарностей
4 641
Баллы
113
Не понял вопроса. Что значит зачем? Если делаю, значит для чего то нужно)
про старый браузер сайты упоминают, когда юзерагент устарел. Не знаю, что там за юзерагент использует WebBrowser, и использует ли вообще, но там наверняка можно где-то задавать заголовки.
 

Hozy

Client
Регистрация
06.03.2016
Сообщения
146
Благодарностей
12
Баллы
18
про старый браузер сайты упоминают, когда юзерагент устарел. Не знаю, что там за юзерагент использует WebBrowser, и использует ли вообще, но там наверняка можно где-то задавать заголовки.
Мне необходимо, что бы в форме отображалось окно инстанса. А webbrowser не принимает параметры загруженного профиля.
Можно ли окно инстанса открывать командой какой нибудь?
 

Hozy

Client
Регистрация
06.03.2016
Сообщения
146
Благодарностей
12
Баллы
18
Нашел вот такой код. Не пойму что и куда надо прописать, что бы окно инстанса открылось.
Код:
var url = "";
var port = 0;
var address = "";
// Gets parameters of instance
ZennoPoster.GetNewInstance(out url, out port, out address);
// Show the instance
ZennoPoster.ShowInstance(url, port, address);
Или этот код не для этого предназначен?
 

Gamma

Client
Регистрация
14.05.2016
Сообщения
83
Благодарностей
10
Баллы
8
Не подскажите как можно запретить нажимать на кнопку "Начать" или на крестик для закрытия пока не выбран не один вариант ?

Скрин:


Код кубика:
Код:
System.Windows.Forms.Form F = new System.Windows.Forms.Form();
F.Text = "Котики везде";
F.TopMost = true;
F.Width=450;    //- задает ширину формы в пикселях
F.Height=300;   //- задает высоту формы в пикселях
F.StartPosition = System.Windows.Forms.FormStartPosition.CenterScreen; //- Открытие окна в центре экрана
//создаем радиобаттоны
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(5,30);
rb2.Location = new System.Drawing.Point(5,50);

//разрешаем нашим радиобаттонам иметь ширину, подходящую под содержимое
rb1.AutoSize=true;

//Создаем GroupBox (группирующий бокс)
System.Windows.Forms.GroupBox grbox1 = new System.Windows.Forms.GroupBox();

//назовем нашу группу
grbox1.Text = "Что делать с котами ?";

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

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

//создаем кнопку
System.Windows.Forms.Button button = new System.Windows.Forms.Button();
//задаем имя кнопки
button.Text = "Начать";
//положение кнопки в окне
button.Location = new System.Drawing.Point(300,200);
//размер кнопочки
button.Size=new System.Drawing.Size(100, 50);

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

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

//кидаем кнопку на форму
F.Controls.Add(button);

button.Click+= delegate(object sender, System.EventArgs e)
{
        F.Close(); //Dispose – это уничножение объекта. Есть аналог Close, но Dispose //выгрузит форму из памяти
};

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

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

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

Gamma

Client
Регистрация
14.05.2016
Сообщения
83
Благодарностей
10
Баллы
8
Либо как установить какое то значение по умолчанию ?
 

Radzhab

Client
Регистрация
23.05.2014
Сообщения
1 500
Благодарностей
1 268
Баллы
113
rb1.Checked=true;
 
  • Спасибо
Реакции: Gamma

Gamma

Client
Регистрация
14.05.2016
Сообщения
83
Благодарностей
10
Баллы
8
  • Спасибо
Реакции: Codemasters

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