응용 프로그램에서 실행하지 않고 windows 양식이 있습니다.응용 프로그램없이 양식 양식 처리
이것은 내가 폼 내에서 호출해야하는 핵심 기능입니다 ... 몇 가지 클래스 변수가 있습니다. 정말 중요한 것은 closingpermission뿐입니다. 사용자는 윈도우를 닫기 위해 버튼을 눌러야 만한다.
불행히도 이벤트를 업데이트하고 처리 할 수 없습니다. 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;
}
편집 :
이"응용 프로그램"싱글 응용 프로그램을 의미한다 - 나는 그것을 가지고 있겠지.
루프가 양식을 계속 표시해야합니다. 나는 soution이 Hans Passant이라고 썼다고 생각합니다. 메시지 루프를 펌프해야합니다.
Ken2K의 솔루션은 나를 위해 작동하지 않습니다.
편집 # 2 : 여기
는 compileable 예이다 - 업데이트 Methos는 내 창을 새로 고쳐하지만 난 텍스트 상자를 편집 할 수 없습니다 - 신경 끄시 버튼이나 내가 텍스트가 다음에 할 것입니다에 대해. 나는 심지어 텍스트를 편집 할 수 없다.
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);
을 호출하는 "무언가"가 필요해 보입니다. 그 무언가가 응용 프로그램 인 것 같습니다. 응용 프로그램이없는 응용 프로그램에서이 작업을 수행 할 수있는 방법을 모르고 있습니다. 제발 동의하지 마십시오.
나는 이해할 수 없다.'응용 프로그램 없음'이란 무엇입니까? – Steve
'응용 프로그램'이 없으므로 분명히 작동하지 않습니다. 양식을 유지하려면 Application.Run() 호출이 필요합니다. 메시지 루프가 실행됩니다. 또는 Form.ShowDialog(). –
[이 질문] (http://stackoverflow.com/questions/4721962/c-sharp-application-run-without-form) 및 승인 된 답변을보십시오. – Steve