2011-11-26 3 views
-2
Form1 frm = new Form1(); 
frm1.ShowDialog(); 

일부 서식 파일 (중요하지 않음)을 작성하기 위해이 서식을 사용하고 양식을 완성한 후 동일한 양식을 다시 열려면 dialogresult를 표시하십시오. 질문 : 동일한 양식을 계속 열려면 어떻게해야합니까? Dialogresult가 YES 인 동안 양식을 열어 두십시오 (이것을 반복하는 방법)? NO 속성은 루프를 중단합니다. 질문이 명확하기를 바랍니다.대화 상자 루프를 반복하는 방법

+0

"* i는 dialogresult를 표시합니다. *"'MessageBox'를 표시합니까? – Otiel

+0

이런 식으로 DialogResult rez = MessageBox.Show() // 여기에 사용자 정의 텍스트 – Michael27

답변

2

당신을위한 나의 제안이다 :

var form2 = new Form2(); 

do 
{ 
    form2.ShowDialog(); 
} 
while (form2.DialogResult == System.Windows.Forms.DialogResult.Yes); 

편집 : 나는 당신의 의견 걸릴

귀하의 질문, 당신은 MessageBox를 사용하고자하므로 그렇게 갈 수 있습니다 :

var form2 = new Form2(); 

do 
{ 
    form2.ShowDialog(); 
} 
while (MessageBox.Show(string.Format("The DialogResult was {0}, do you want to show the form again?", form2.DialogResult), "My Program", MessageBoxButtons.YesNo) == System.Windows.Forms.DialogResult.Yes); 
+0

나는 당신의 코드를 이해하지 못한다고 생각합니다. 명확히 해 주시겠습니까? – Michael27

+2

당신의 질문을 이해한다면 호출 된 폼의 DialogResult가 Yes 인 한 반복 할 수 있습니다. 그래서 내 코드는 양식을 보여 주며 DialogResult가 Yes이면 루프를 반복하여 양식을 표시합니다. Yes가 아닌 다른 것이 있으면 루프가 중지됩니다. – Fischermaen

+0

질문에 대한 설명에 따라 샘플을 변경했습니다. – Fischermaen

1

사용자가 frm1을 닫으려고 할 때 대화 결과가 표시되면 대답이 '예'일 경우 아무 것도하지 마십시오. 그렇지 않으면 frm1을 닫으십시오. 나는 당신의 질문을 정확하게 이해하기를 바랍니다. 당신이 Frm1에는 종료 할 때 :

편집

여기
DialogResult res = MessageBox.Show("Do you want to keep this form open?", 
            "Close?", 
            MessageBoxButtons.YesNo); 

if(res == DialogResult.No) this.Close(); 
+0

스위치 케이스를 사용하려고했지만 한 번만 작동합니다. 대화 상자는 내가 무엇을해도 한 번만 표시됩니다. – Michael27