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

Регистрация
08.07.2015
Сообщения
2 854
Благодарностей
706
Баллы
113
https://habrahabr.ru/post/302432/ вот тут пишут что это просто обертка на IE. Может от используемого .NET Framework зависит?
у меня ie последней версии на ПК а с вебформы смотрел юзер агент от 7 . Читал в инете там вообще прикручивают левый браузер вместо стандартного.
 

baimkin

Client
Регистрация
04.08.2015
Сообщения
283
Благодарностей
107
Баллы
43
  • Спасибо
Реакции: masterLomaster

BraG.A

Пользователь
Регистрация
05.08.2016
Сообщения
81
Благодарностей
6
Баллы
8
Ребята скажите, могу ли я другу написать шаблон в ПМ завернуть его в оболочку, где надо будет вводить простейшие данные и отдать для работы ? Если да то киньте ссылку как это делать.
 

BraG.A

Пользователь
Регистрация
05.08.2016
Сообщения
81
Благодарностей
6
Баллы
8
ключевое слово тут продать )))
Пока отдать, так как делаю бесплатно друзьям, в будущем - возможно. Но вопрос все же остается открытым. Каким образом создавать стороннюю оболочку - форму.

Когда-то на форму видел , как парень продавал такого плана шаблон со своим интерфейсом , но не помню где это запись на форуме.
 
Регистрация
08.07.2015
Сообщения
2 854
Благодарностей
706
Баллы
113
в
Пока отдать, так как делаю бесплатно друзьям, в будущем - возможно. Но вопрос все же остается открытым. Каким образом создавать стороннюю оболочку - форму.

Когда-то на форму видел , как парень продавал такого плана шаблон со своим интерфейсом , но не помню где это запись на форуме.
ПМ есть такая чтука как входящие настройки!
http://zennolab.com/wiki/ru:input-settings
без украшательств )))
 

BenLinus

Client
Регистрация
29.04.2016
Сообщения
38
Благодарностей
6
Баллы
8
Подскажите строку по выбору шрифта, вроде FontDialog. Как грамотно составить.
 

ksander

Client
Регистрация
17.06.2016
Сообщения
264
Благодарностей
31
Баллы
28
Добрый день столкнулся с такой проблемой, понадобилось вводить данные когда скрипт работает извне. Все нашел все вроде работает Но одно НО
При отправке данных происходит ошибка.

upload_2016-12-1_22-17-58.png


Сам код сниппета ниже
Код:
System.Windows.Forms.Form F = new System.Windows.Forms.Form();
F.Text = "Управление";
F.Width=300;    //- задает ширину формы в пикселях
F.Height=250;    //- задает высоту формы в пикселях
F.StartPosition = System.Windows.Forms.FormStartPosition.CenterScreen; //- Открытие окна в центре экрана
//создаем текстбокс
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;
Скажите что не хватает?.
 

LaGir

Client
Регистрация
01.10.2015
Сообщения
202
Благодарностей
725
Баллы
93
Скажите что не хватает?.
Видимо, отсутствует переменная Text в списке переменных шаблона, в которую в коде записывается результат (строка 25). Если её действительно нет, нужно просто создать.
 
  • Спасибо
Реакции: ksander

ksander

Client
Регистрация
17.06.2016
Сообщения
264
Благодарностей
31
Баллы
28
Видимо, отсутствует переменная Text в списке переменных шаблона, в которую в коде записывается результат (строка 25). Если её действительно нет, нужно просто создать.
Спасибо помогло, еще вопрос как отредактировать саму форму визуально?
 

LaGir

Client
Регистрация
01.10.2015
Сообщения
202
Благодарностей
725
Баллы
93

ksander

Client
Регистрация
17.06.2016
Сообщения
264
Благодарностей
31
Баллы
28
Визуально - в Visual Studio можно. В Project Maker чисто конечный код только можно вставить.
Что то не мог там разобраться где код брат, форму накидал вытащил код но он совсем не похож на данный который используется тут.
 

frion-seo

Client
Регистрация
27.02.2011
Сообщения
442
Благодарностей
380
Баллы
63
До! Расширение плюшек!
Если Вам что то непонятно) или чего-то не хватает - дергайте меня, пока я никуда не делся)))

Пы.Сы. но, конечно, писать обвязку на целый проект - это перебор))))
Не подскажешь как вызвать по клику на форме еще одну форму ?
сам разобрался
в обработчике событий пишем
Код:
System.Windows.Forms.Form F2 = new System.Windows.Forms.Form();
F2.Show();
 
Последнее редактирование:

LaGir

Client
Регистрация
01.10.2015
Сообщения
202
Благодарностей
725
Баллы
93
Что то не мог там разобраться где код брат, форму накидал вытащил код но он совсем не похож на данный который используется тут.
Если не изменяет память, код надо брать из файла в проекте с названием типа Form.Designer.cs. Перед вставкой нужно почистить код от оберток неймспейсов, классов, методов. По мелочи замены сделать (например, this на конкретный объект). В принципе, путём экспериментов, смотря на что ругается PM, сверяясь с допустимыми примерами кода из статьи - даже без знаний основ C# вполне можно адаптировать полученный в студии код под зеннку.
 

unicorn79

Новичок
Регистрация
11.01.2017
Сообщения
20
Благодарностей
0
Баллы
1
Рабочий обработчик закрытия формы по крестику:

Код:
F.FormClosing+=delegate(object sender, System.Windows.Forms.FormClosingEventArgs e)
{
// тут пишем свой код
};


F.ShowDialog();
 

unicorn79

Новичок
Регистрация
11.01.2017
Сообщения
20
Благодарностей
0
Баллы
1
Здравствуйте, друзья! Я новичок в Zenno и C#, но немного знаком с принципами программирования.
Стоит задача написать при помощи C# и zenno аналог GUI приложения. Начал с азов - создал форму с элементами управления. При нажатии кнопки, я сейчас выполняю

Код:
F.Hide();
для выхода из блока C#, затем средствами zenno выполняю некоторые действия (блоки), после чего опять возвращаюсь (стрелкой) к вышеуказанному блоку C# (моей форме).

На период выполнения кода zenno форма будет скрыта с глаз пользователя, пока не будет возврата к блоку C#.

Вопрос - можно как-то выполнять блоки zenno без скрывания F.Hide() формы? (чтоб обеспечить аналог GUI-интерфейса).

Спасибо!
 

BenLinus

Client
Регистрация
29.04.2016
Сообщения
38
Благодарностей
6
Баллы
8
Рабочий обработчик закрытия формы по крестику:

Код:
F.FormClosing+=delegate(object sender, System.Windows.Forms.FormClosingEventArgs e)
{
// тут пишем свой код
};


F.ShowDialog();
Не совсем понял как грамотно прописать. А он просто закрывает форму? Мне нужно при нажатии на крест останавливать и сам шаблон.
Я вот к примеру используют след. код, только шаблон не останавливается, а просто форма закрывается
Код:
button.Click+= delegate(object sender, System.EventArgs e)
{
    F.Close(); // закрытие при нажатии
};
 

baimkin

Client
Регистрация
04.08.2015
Сообщения
283
Благодарностей
107
Баллы
43
Добавь переменную для остановки проекта и проверяй его значение после выполнения кубика с кодом:
Код:
button.Click+= delegate(object sender, System.EventArgs e)
{
    project.Variables["date"].Value = "1";    //команда на стоп шаблона
    F.Close(); // закрытие при нажатии
};
upload_2017-1-24_20-52-49.png
 

BenLinus

Client
Регистрация
29.04.2016
Сообщения
38
Благодарностей
6
Баллы
8
Добавь переменную для остановки проекта и проверяй его значение после выполнения кубика с кодом:
Код:
button.Click+= delegate(object sender, System.EventArgs e)
{
    project.Variables["date"].Value = "1";    //команда на стоп шаблона
    F.Close(); // закрытие при нажатии
};
Посмотреть вложение 18109
Я так кстати и хотел делать, но показалось не комельфо))) Ведь явно можно в самом коде прописать прерывание шаба, т.е. вывести по красной линии.
 

LaGir

Client
Регистрация
01.10.2015
Сообщения
202
Благодарностей
725
Баллы
93
Ведь явно можно в самом коде прописать прерывание шаба, т.е. вывести по красной линии.
Выход из кода по красной ветке - throw new Exception(); или return null;
В данном случае используем сразу после F.Close();
 
  • Спасибо
Реакции: Marcelo

evgen2522

Client
Регистрация
08.01.2016
Сообщения
489
Благодарностей
107
Баллы
43
Парни что никто не знает как сделать что бы веб браузер в форме работал правильно и не открывал эксплорер а открывал страницы в самом себе
 

BenLinus

Client
Регистрация
29.04.2016
Сообщения
38
Благодарностей
6
Баллы
8
Выход из кода по красной ветке - throw new Exception(); или return null;
В данном случае используем сразу после F.Close();
А можно на примере? Правильно ли пишу? Используя throw new Exception(); выдает ошибку.
Код:
button.Click+= delegate(object sender, System.EventArgs e)
{
    F.Close();
    return null;
};
 

LaGir

Client
Регистрация
01.10.2015
Сообщения
202
Благодарностей
725
Баллы
93
А можно на примере? Правильно ли пишу?
Да, верно.
Используя throw new Exception(); выдает ошибку.
Ошибку после того, как закрыли форму? Если да, то всё верно, это строка и предназначена для вывода ошибки (что приводит к выходу из сниппета по красной ветке или на BadEnd, завершение шаблона). Если нет - скорее всего проблема в другом участке кода, но без хотя бы описания ошибки сложно что-то сказать.
 

BenLinus

Client
Регистрация
29.04.2016
Сообщения
38
Благодарностей
6
Баллы
8
Да, верно.

Ошибку после того, как закрыли форму? Если да, то всё верно, это строка и предназначена для вывода ошибки (что приводит к выходу из сниппета по красной ветке или на BadEnd, завершение шаблона). Если нет - скорее всего проблема в другом участке кода, но без хотя бы описания ошибки сложно что-то сказать.
Не получается. Кидаю тогда сразу всю форму.
Код:
System.Windows.Forms.Form F = new System.Windows.Forms.Form();
F.Text = "Наша форма";
F.AutoSize=true;
F.FormBorderStyle = System.Windows.Forms.FormBorderStyle.None;
F.StartPosition = System.Windows.Forms.FormStartPosition.CenterScreen;

System.Windows.Forms.Button button4 = new System.Windows.Forms.Button();
button4.Text = "X";
button4.Location = new System.Drawing.Point(300,0);
button4.Size=new System.Drawing.Size(30, 30);
button4.FlatStyle = System.Windows.Forms.FlatStyle.Flat;
F.Controls.Add(button4);
button4.Click+= delegate(object sender, System.EventArgs e)
{
    F.Close();
    return null;
};

F.ShowDialog();
return 0;
При использовании return null выскакивает следующее
1.png


А при использовании throw new Exception(); Форма запускается, но если нажать на кнопку то выскакивает другая ошибка
11.png
 

LaGir

Client
Регистрация
01.10.2015
Сообщения
202
Благодарностей
725
Баллы
93
Не получается. Кидаю тогда сразу всю форму.
Пардон, затупил с допустимым местом выхода по ошибке. Рабочий вариант для той формы, через допфлаг fClosed:
C#:
System.Windows.Forms.Form F = new System.Windows.Forms.Form();
F.Text = "Наша форма";
F.AutoSize=true;
F.FormBorderStyle = System.Windows.Forms.FormBorderStyle.None;
F.StartPosition = System.Windows.Forms.FormStartPosition.CenterScreen;

System.Windows.Forms.Button button4 = new System.Windows.Forms.Button();
button4.Text = "X";
button4.Location = new System.Drawing.Point(300,0);
button4.Size=new System.Drawing.Size(30, 30);
button4.FlatStyle = System.Windows.Forms.FlatStyle.Flat;
F.Controls.Add(button4);
bool fClosed = false;
button4.Click+= delegate(object sender, System.EventArgs e)
{
    F.Close();
    fClosed = true;
};

F.ShowDialog();

if (fClosed)    //Если форма закрыта по крестику, выходим по красной ветке
    throw new Exception();

return 0;
 

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