2014-04-22 3 views
-1

나는 onw windows 양식을 가진 windows 응용 프로그램을 가지고 있습니다. 양식을 닫을 때 "이 양식을 닫으시겠습니까?"라고 묻는 확인 상자를 추가하고 싶습니다. 어떻게하면 C#의 팝업 확인에서 "다시 묻지 않습니까?"라고 표시 할 수 있습니까?확인 팝업에서 "다시 묻지 않음"

+0

는 다른 양식을 작성하고 설정에서 해당 설정을 저장하는 것 또는 사용자 설정을 읽고 그 중 하나를 표시하거나 설정이 true로 설정된 경우 "다시 묻지 않음"대화 상자 –

+1

정말요? 왜 물어볼 필요가 있니? 저장할 필요가있는 데이터가 있습니까? 왜 사용자의 의도를 추측하고 싶습니까? (예, 사실입니다, 나에게이 질문을하는 프로그램이 싫어) – Steve

+0

@ 스티브, 그럼이 프로그램은 오직 한 번만 물어볼 것입니다. – jwg

답변

0

레이블, 확인란 및 확인 버튼이있는 양식을 만듭니다.

이 양식을 닫을 때마다 : (확인 버튼이 클릭 됨); 이 양식을 닫는 다른 가능한 방법은

private void OK_Click(object sender, eventArgs e) 
{ 
DoCheck(); 
DialogResult = DialogResult.OK; //this closes your form 
} 

private void DoCheck() 
{ 
if(checkBox1.Checked) 
{ 
    //Set your value on true 
    MyValues.Confirm = true; 
} 
} 
1

모두의 먼저 i는 사용자 환경 설정을 기억하기위한 세 가지 static 공용 속성 _askUserAgain, _yes_noConformation입니다 만든 당신의 SolutionClass 필요 없는지 확인 .

public class Confirmation 
{ 
    public static bool _askUserAgain = true; 
    public static bool _yes = false; 
    public static bool _no = false; 
} 

Fomr2 내부

private void Form1_FormClosing(object sender, FormClosingEventArgs e) 
{ 
    if (Confirmation._askUserAgain == true) 
    { 
    e.Cancel = true; 
    Form2 form2 = new Form2(); 
    form2.Show(); 
    } 
    else 
    { 
    e.Cancel = false; 
    } 
} 

옆을 Form1의 FormClosing 이벤트가 될 것입니다 다음과 같이 :

Form2

private void checkBox1_CheckedChanged(object sender, EventArgs e) 
    { 
     Confirmation._askUserAgain = false; 
    } 

    private void Yes_Click(object sender, EventArgs e) 
    { 
     Confirmation._yes = true; 
     Confirmation._no = false; 
     Form1 parentForm = Application.OpenForms["Form1"] as Form1; 
     if (parentForm != null) 
     { 
      parentForm.Hide(); 
     } 
     this.Hide(); 
    } 

    private void No_Click(object sender, EventArgs e) 
    { 
     Confirmation._no = true; 
     Confirmation._yes = false; 
     if (Confirmation._no) 
     { 
      this.Hide(); 
      Form1 parentForm = Application.OpenForms["Form1"] as Form1; 
      parentForm.Show(); 
     } 
    } 
관련 문제