8

我使用了一个按钮

Button buttonOk = new Button();

连同其他代码,如何检测是否已单击创建的按钮?并使其如果单击表单将关闭?

4

4 回答 4

16
    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();
    }
于 2013-03-10T15:15:24.293 回答
10

您需要一个在单击按钮时触发的事件处理程序。这是一个快速的方法 -

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

  this.Controls.Add(button);

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

但最好多了解一下按钮、事件等。

如果您使用 Visual Studio UI 创建一个按钮并在设计模式下双击该按钮,这将创建您的事件并为您连接它。然后,您可以转到设计器代码(默认为 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;

至于关闭Form,只要把Close(); 在您的事件处理程序中:

private void button1_Click(object sender, EventArgs e)
    {
       MessageBox.Show("some text");
       Close();
    }
于 2013-03-10T15:16:49.953 回答
1

如果您的按钮在您的表单类中:

buttonOk.Click += new EventHandler(your_click_method);

(可能不完全是EventHandler

并在您的点击方法中:

this.Close();

如果需要显示消息框:

MessageBox.Show("test");
于 2013-03-10T15:16:19.327 回答
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
        }
于 2013-03-10T15:44:29.993 回答