У меня есть форма для 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:
"Применение" означает одноплодное приложение - я не имею, что.
Петля должна сохранять форму отображаемой - я думаю, что soution - это что-то Hans Passant. Мне нужно перекачать контур сообщения.
Решение Ken2K не работает для меня.
Edit # 2:
Вот compileable пример - Митос обновление обновляет мое окно, но я не могу изменить текстовое поле - фигу о кнопке или то, что я буду делать дальше с текстом. Я даже не могу отредактировать текст.
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();
}
}
}
}
Edit # 3
Я думаю, что я хочу, не может быть сделано. Я прочитал тему, и вам кажется, что вам нужно «что-то», которое вызывает protected override void WndProc(ref Message m);
все время. Это что-то кажется Приложением. Я не знаю, как это сделать в приложении, которое не имеет приложения. Пожалуйста, не соглашайтесь со мной :)
не понимаю.Что значит «без приложения»? – Steve
Очевидно, что это не работает, потому что у вас нет приложения. Звонок Application.Run() необходим для сохранения форм в живых, он накачивает цикл сообщений. Или Form.ShowDialog(). –
Посмотрите на [этот вопрос] (http://stackoverflow.com/questions/4721962/c-sharp-application-run-without-form) и на принятый ответ. – Steve