У меня есть форма Windows без запуска в приложении.
это основная функция, которую я должен вызывать в форме ... есть некоторые переменные класса, единственная действительно важная - это закрывающее разрешение. пользователь должен нажать кнопку, чтобы закрыть окно.
К сожалению, я не могу получить его для обновления и обработки событий. this.Update()
, this.Refresh()
не добьются цели.
internal short ask(String question, String RegExFilter, out String answer)
{
this.RegExFilter = RegExFilter;
this.Text = question;
this.Show();
while (!closingpermission)
{
//Window needs to process its events and allow the user to interact.
}
answer = answerBox.Text;
this.Close();
return RetVal;
}
EDIT:
«Приложение» означает одно-приложение - у меня его нет.
Цикл должен поддерживать отображение формы - я думаю, что это что-то написанное Ганс Пассант написал. Мне нужно прокачать цикл сообщений.
Решение Ken2K у меня не работает.
Редактировать # 2:
Вот пример, который можно скомпилировать - метод обновления обновляет мое окно, но я не могу редактировать текстовое поле - не обращайте внимания на кнопку или то, что я буду делать дальше с текстом. Я даже не могу редактировать текст.
using System.Windows.Forms;
using System.Drawing; //System.Drawing.dll
namespace StackOverFlowDemo
{
class Example
{
public static void Main()
{
Input input = new Input();
input.Ask("Something");
}
}
class Input : Form
{
TextBox textbox = new TextBox();
public Input()
{
this.Controls.AddRange(new Control[] { textbox });
this.Bounds = new Rectangle(0, 0, 500, 500);
this.textbox.Bounds = new Rectangle(10, 10, 480, 200);
}
internal void Ask(string question)
{
this.Text = question;
this.Show();
while (true)
{
this.Update();
}
}
}
}
Редактировать # 3
Я думаю, что то, что я хочу, не может быть сделано. Я читаю на тему, и кажется, что вам нужно "что-то", который постоянно вызывает protected override void WndProc(ref Message m);
. Это что-то вроде приложения. Я не знаю ни одного способа сделать это в приложении, которое не имеет приложения. Пожалуйста, не соглашайтесь со мной:)