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

https://habrahabr.ru/post/302432/ вот тут пишут что это просто обертка на IE. Может от используемого .NET Framework зависит?
у меня ie последней версии на ПК а с вебформы смотрел юзер агент от 7 . Читал в инете там вообще прикручивают левый браузер вместо стандартного.
 
у меня ie последней версии на ПК а с вебформы смотрел юзер агент от 7 . Читал в инете там вообще прикручивают левый браузер вместо стандартного.
upload_2016-10-5_15-2-5.png
 
  • Спасибо
Реакции: masterLomaster
Ребята скажите, могу ли я другу написать шаблон в ПМ завернуть его в оболочку, где надо будет вводить простейшие данные и отдать для работы ? Если да то киньте ссылку как это делать.
 
ключевое слово тут продать )))
Пока отдать, так как делаю бесплатно друзьям, в будущем - возможно. Но вопрос все же остается открытым. Каким образом создавать стороннюю оболочку - форму.

Когда-то на форму видел , как парень продавал такого плана шаблон со своим интерфейсом , но не помню где это запись на форуме.
 
в
Пока отдать, так как делаю бесплатно друзьям, в будущем - возможно. Но вопрос все же остается открытым. Каким образом создавать стороннюю оболочку - форму.

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

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;

Скажите что не хватает?.
 
Скажите что не хватает?.
Видимо, отсутствует переменная Text в списке переменных шаблона, в которую в коде записывается результат (строка 25). Если её действительно нет, нужно просто создать.
 
  • Спасибо
Реакции: ksander
Видимо, отсутствует переменная Text в списке переменных шаблона, в которую в коде записывается результат (строка 25). Если её действительно нет, нужно просто создать.
Спасибо помогло, еще вопрос как отредактировать саму форму визуально?
 
Визуально - в Visual Studio можно. В Project Maker чисто конечный код только можно вставить.
Что то не мог там разобраться где код брат, форму накидал вытащил код но он совсем не похож на данный который используется тут.
 
До! Расширение плюшек!
Если Вам что то непонятно) или чего-то не хватает - дергайте меня, пока я никуда не делся)))

Пы.Сы. но, конечно, писать обвязку на целый проект - это перебор))))
Не подскажешь как вызвать по клику на форме еще одну форму ?
сам разобрался
в обработчике событий пишем
Код:
Развернуть Свернуть Копировать
System.Windows.Forms.Form F2 = new System.Windows.Forms.Form();
F2.Show();
 
Последнее редактирование:
Что то не мог там разобраться где код брат, форму накидал вытащил код но он совсем не похож на данный который используется тут.
Если не изменяет память, код надо брать из файла в проекте с названием типа Form.Designer.cs. Перед вставкой нужно почистить код от оберток неймспейсов, классов, методов. По мелочи замены сделать (например, this на конкретный объект). В принципе, путём экспериментов, смотря на что ругается PM, сверяясь с допустимыми примерами кода из статьи - даже без знаний основ C# вполне можно адаптировать полученный в студии код под зеннку.
 
Рабочий обработчик закрытия формы по крестику:

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


F.ShowDialog();
 
Здравствуйте, друзья! Я новичок в Zenno и C#, но немного знаком с принципами программирования.
Стоит задача написать при помощи C# и zenno аналог GUI приложения. Начал с азов - создал форму с элементами управления. При нажатии кнопки, я сейчас выполняю

Код:
Развернуть Свернуть Копировать
F.Hide();

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

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

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

Спасибо!
 
Рабочий обработчик закрытия формы по крестику:

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


F.ShowDialog();
Не совсем понял как грамотно прописать. А он просто закрывает форму? Мне нужно при нажатии на крест останавливать и сам шаблон.
Я вот к примеру используют след. код, только шаблон не останавливается, а просто форма закрывается
Код:
Развернуть Свернуть Копировать
button.Click+= delegate(object sender, System.EventArgs e)
{
    F.Close(); // закрытие при нажатии
};
 
Добавь переменную для остановки проекта и проверяй его значение после выполнения кубика с кодом:
Код:
Развернуть Свернуть Копировать
button.Click+= delegate(object sender, System.EventArgs e)
{
    project.Variables["date"].Value = "1";    //команда на стоп шаблона
    F.Close(); // закрытие при нажатии
};
upload_2017-1-24_20-52-49.png
 
Добавь переменную для остановки проекта и проверяй его значение после выполнения кубика с кодом:
Код:
Развернуть Свернуть Копировать
button.Click+= delegate(object sender, System.EventArgs e)
{
    project.Variables["date"].Value = "1";    //команда на стоп шаблона
    F.Close(); // закрытие при нажатии
};
Посмотреть вложение 18109
Я так кстати и хотел делать, но показалось не комельфо))) Ведь явно можно в самом коде прописать прерывание шаба, т.е. вывести по красной линии.
 
Ведь явно можно в самом коде прописать прерывание шаба, т.е. вывести по красной линии.
Выход из кода по красной ветке - throw new Exception(); или return null;
В данном случае используем сразу после F.Close();
 
  • Спасибо
Реакции: Marcelo
Парни что никто не знает как сделать что бы веб браузер в форме работал правильно и не открывал эксплорер а открывал страницы в самом себе
 
Выход из кода по красной ветке - throw new Exception(); или return null;
В данном случае используем сразу после F.Close();
А можно на примере? Правильно ли пишу? Используя throw new Exception(); выдает ошибку.
Код:
Развернуть Свернуть Копировать
button.Click+= delegate(object sender, System.EventArgs e)
{
    F.Close();
    return null;
};
 
А можно на примере? Правильно ли пишу?
Да, верно.
Используя throw new Exception(); выдает ошибку.
Ошибку после того, как закрыли форму? Если да, то всё верно, это строка и предназначена для вывода ошибки (что приводит к выходу из сниппета по красной ветке или на BadEnd, завершение шаблона). Если нет - скорее всего проблема в другом участке кода, но без хотя бы описания ошибки сложно что-то сказать.
 
Да, верно.

Ошибку после того, как закрыли форму? Если да, то всё верно, это строка и предназначена для вывода ошибки (что приводит к выходу из сниппета по красной ветке или на 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
 
Не получается. Кидаю тогда сразу всю форму.
Пардон, затупил с допустимым местом выхода по ошибке. Рабочий вариант для той формы, через допфлаг 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;
 

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