2013-03-10 130 views
1

我已經使用創建按鈕單擊事件C#

Button buttonOk = new Button(); 
與其他代碼一起

一個按鈕,如何檢測,如果創建的按鈕被點擊? 並讓它如果點擊表格將關閉?

+0

您需要附加事件處理程序'buttonOk.Click + = ...' – 2013-03-10 15:14:49

+0

對不起有些改變我的問題,但我怎麼能這樣做,所以它會打開一個MessageBox – Froodle 2013-03-10 15:19:57

+0

MessageBox.Show(「some text」); – NDJ 2013-03-10 15:22:38

回答

3
public MainWindow() 
    { 
     // This button needs to exist on your form. 
     myButton.Click += myButton_Click; 
    } 

    void myButton_Click(object sender, RoutedEventArgs e) 
    { 
     MessageBox.Show("Message here"); 
     this.Close(); 
    } 
+0

不適用於我,但謝謝你 – Froodle 2013-03-10 15:27:52

+0

@FroodleStirling你的表單上是否存在你的按鈕?不要在代碼中創建新按鈕,只需使用表單上的按鈕即可。我更新了我的答案。也許你可以嘗試一下。首先將按鈕放在窗體上。 – 2013-03-10 15:32:38

+0

它提出了「一個對象引用是必需的」 – Froodle 2013-03-10 15:46:25

1

如果你的按鈕是窗體類中:

buttonOk.Click += new EventHandler(your_click_method); 

(可能不完全EventHandler

,並在點擊方法:

this.Close(); 

如果您需要顯示消息框:

MessageBox.Show("test"); 
+0

對不起有人改變我的問題,但我怎麼做到這一點,所以它會打開一個MessageBox – Froodle 2013-03-10 15:20:17

2

您需要一個事件處理程序,單擊該按鈕時會觸發。 這裏是一個快速的方式 -

var button = new Button(); 
    button.Text = "my button"; 

    this.Controls.Add(button); 

    button.Click += (sender, args) => 
         { 
          MessageBox.Show("Some stuff"); 
          Close(); 
         }; 

但它會更好地理解多一點按鈕,事件等

如果您使用Visual Studio的用戶界面來創建一個按鈕,然後雙擊按鈕在設計模式下,這將創建您的事件併爲您連接。那麼你可以去到設計代碼(默認會Form1.Designer.cs),在那裏你會找到事件:

this.button1.Click += new System.EventHandler(this.button1_Click); 

你還會看到其他信息設置了很多的按鈕,如位置等 - 這將幫助你創建一個你想要的方式,並且會提高你對創建UI元素的理解。例如。一個默認按鈕在我的2012機器上給出了這個:

 this.button1.Location = new System.Drawing.Point(128, 214); 
     this.button1.Name = "button1"; 
     this.button1.Size = new System.Drawing.Size(75, 23); 
     this.button1.TabIndex = 1; 
     this.button1.Text = "button1"; 
     this.button1.UseVisualStyleBackColor = true; 

至於關閉窗體,就像放置Close()一樣簡單;事件處理函數中:

private void button1_Click(object sender, EventArgs e) 
    { 
     MessageBox.Show("some text"); 
     Close(); 
    } 
0

創建Button並將其添加到Form.Controls列表中顯示它的形式:

Button buttonOk = new Button(); 
buttonOk.Location = new Point(295, 45); //or what ever position you want it to give 
buttonOk.Text = "OK"; //or what ever you want to write over it 
buttonOk.Click += new EventHandler(buttonOk_Click); 
this.Controls.Add(buttonOk); //here you add it to the Form's Controls list 

創建按鈕單擊方法在這裏:

void buttonOk_Click(object sender, EventArgs e) 
     { 
      MessageBox.Show("clicked"); 
      this.Close(); //all your choice to close it or remove this line 
     }