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

Спасибо вам большое!

Чутка исправленный код кому вдруг пригодится:
Код:
Развернуть Свернуть Копировать
//пишем, что у нас там будет при клике
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("Неполные данные");
};
 
Спасибо вам большое!

Чутка исправленный код кому вдруг пригодится:
Код:
Развернуть Свернуть Копировать
//пишем, что у нас там будет при клике
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("Неполные данные");
};
Рад что помог)
 
Новая проблема появилась, все никак не могу получить данные из календаря в текстовую форму, подскажите пожалуйста кто знает.

Код:
Развернуть Свернуть Копировать
//календурь
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.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
Решил еще добавить функционала, но опять сам не могу додумать как сделать, есть определенное количество переменных, надо на каждую переменную динамически добавить элементы на форму, пример:

Переменная 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);
    }
  
};
но чет не работает
 
Последнее редактирование:
delete
 
Последнее редактирование:
Обновился, и опять 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]
 
Последнее редактирование:
такая же проблема
 
Че каве :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
 
Че каве :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
Ага, если создать чистый проект, тогда работает, а вот в приложенном в первом посте, а иногда и скопированный в уже готовый проект, сниппет
работать не хочет.
 
Там вроде в одном из снипетов ошибка есть из за этого блокируется работа всех снипетов проекта.
 
Доброго времени суток уважаемые!
Подскажите, как реализовать выбор файла с передачей его пути в переменную?
 
Доброго времени суток уважаемые!
Подскажите, как реализовать выбор файла с передачей его пути в переменную?
Код:
Развернуть Свернуть Копировать
//создаем форму
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
Спасибо, попробую.
 
Так как всё-таки делать всплывающую форму по центру экрана? Подскажите пожалуйста. Например, у меня такой код
Код:
Развернуть Свернуть Копировать
// создаём форму с указанным значением
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
Это позволит выбрать локацию форы в любом удобном месте
Название формы.StartPosition = System.Windows.Forms.FormStartPosition.Manual;
Название формы.Location = new Point(10, 100);
 
  • Спасибо
Реакции: Marcelo
Это позволит выбрать локацию форы в любом удобном месте
Название формы.StartPosition = System.Windows.Forms.FormStartPosition.Manual;
Название формы.Location = new Point(10, 100);
А ты можешь подсказать, какое название формы в моём коде? Или как это название сделать?
 
А ты можешь подсказать, какое название формы в моём коде? Или как это название сделать?
Я не очень силен в си шарпе но думаю будет работать если между 4 и 10 строкой вписать это
StartPosition = System.Windows.Forms.FormStartPosition.Manual;
Location = new Point(10, 100);
если не будет работать воткни после 2 строчки
 
Доброго времени суток уважаемые.
Помогите решить проблему:
При запуске шаблона, загружается профиль, после чего открывается форма с веббраузером.
Внимание вопрос! Как передать этой форме куки из профиля?

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

Код:
Развернуть Свернуть Копировать
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;
 
Последнее редактирование:
Или как сделать, что бы окно инстанса автоматически открывалось?
 
Не понял вопроса. Что значит зачем? Если делаю, значит для чего то нужно)
про старый браузер сайты упоминают, когда юзерагент устарел. Не знаю, что там за юзерагент использует WebBrowser, и использует ли вообще, но там наверняка можно где-то задавать заголовки.
 
про старый браузер сайты упоминают, когда юзерагент устарел. Не знаю, что там за юзерагент использует WebBrowser, и использует ли вообще, но там наверняка можно где-то задавать заголовки.
Мне необходимо, что бы в форме отображалось окно инстанса. А webbrowser не принимает параметры загруженного профиля.
Можно ли окно инстанса открывать командой какой нибудь?
 
Нашел вот такой код. Не пойму что и куда надо прописать, что бы окно инстанса открылось.
Код:
Развернуть Свернуть Копировать
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);

Или этот код не для этого предназначен?
 
Не подскажите как можно запретить нажимать на кнопку "Начать" или на крестик для закрытия пока не выбран не один вариант ?

Скрин:
8afdf7004d804892ab836f4ca147896d.png


Код кубика:
Код:
Развернуть Свернуть Копировать
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
Либо как установить какое то значение по умолчанию ?
 

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