2011-01-02 2 views
-4

내 함수는 사용자 입력을 받아들이고 사용자가 확인을 클릭하면 일을 처리합니다.함수 내에서 사용자 입력 및 수락

private void cannyToolStripMenuItem_Click (object sender, EventArgs e) { canny(); }

private void canny() 
     { 

// get user input 
// if user clicks ok 
      if (ok button is clicked) 
       { 
        messagebox.show(" you clicked ok") 
       // 
       //do dome work 
       // 
       } 


     } 

그러나 메시지 상자를 볼 수 없습니다. 내가 누락 된 부분.

private void ok_Click(object sender, EventArgs e) 
     { 
// should I add here some thing 
     } 

나는 무엇이 누락 되었습니까? 안부,

+1

질문에 의미가 없습니다. – SLaks

+1

현재 설정을 좀 더 자세하게 설명하면 도움이됩니다. 또한 코드 형식을 기억하십시오. – Soumya

+6

그게 뭐야 ??????????????? Form1.Control.Add (Ok)'뒤에서야합니까? 내 OS의 언어 팩이 깨 졌거나 브라우저입니까? – BoltClock

답변

3

나는 당신이 얻으려고하는 것이 대화 상자에서 결과를 얻는 것이라고 생각한다. 그런 경우 다음을 수행 할 :

private void ShowDialogAndDoSomethingBasedOnTheResult() 
{ 
    DialogResult result = MessageBox.Show(
     "Dialog text", 
     "Caption to go in title bar", 
     MessageBoxButtons.OK); 
    if (result == DialogResult.OK) 
    { 
     //Do work 
    } 
} 

더 많은 예제 http://msdn.microsoft.com/en-gb/library/0x49kd7z.aspx를 참조하십시오.

1

음, 그래, 당신이 할 : 대화 상자를 닫습니다

private void ok_Click(object sender, EventArgs e) 
{ 
    this.DialogResult = DialogResult.Ok; 
} 

, 그것은 단지 한의 DialogResult를 속성이 없음 없기 때문에 실행 유지됩니다. 꼭 필요한 것은 아니며 디자이너를 사용할 수도 있습니다. 버튼의 DialogResult 속성을 변경하면 이제 코드를 작성할 필요가 없습니다. 그러나 이는 적절하지 않은 경우가 대부분이며 사용자가 필요한 모든 정보를 제공했는지 확인하려고합니다. Ymmv.