0

这是我的代码,由于某种原因,按钮二不会触发,按钮一会触发,当我将按钮 2 中的代码放入其中时,它会在那里工作。关于让按钮一和二都在点击时工作的语法,我缺少什么?我学习 c# 大约 2 周,所以这对我来说是全新的,我不明白为什么这段代码不应该工作。

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;

namespace WindowsFormsApplication2
{

    public partial class Form1 : Form
    {
        string filePath = null;
        public Form1()
        {
            InitializeComponent();
        }

        //Method to check database connection
        private void button1_Click(object sender, EventArgs e)
        {
            MessageBox.Show("button1.Click was raised.");
        }

        //Method to select a file
        private void button2_Click(object sender, EventArgs e)
        {
            OpenFileDialog file = new OpenFileDialog();
            if (file.ShowDialog() == DialogResult.OK)
            {
                filePath = file.FileName;
            }
        }
    }
}
4

2 回答 2

1

我假设事件处理程序没有被订阅(不再)。所以看看Form1自动生成文件中的部分类Form1.Designer.cs。一定有这个地方:

this.button1.Click += new System.EventHandler(this.button1_Click);
// is this missing?
this.button2.Click += new System.EventHandler(this.button2_Click);

如何:订阅和取消订阅事件(C# 编程指南)

于 2013-03-08T21:16:10.997 回答
0

确保button2已绑定。

从设计器中,选择按钮,然后转到属性窗口。单击闪电,并确保单击事件绑定到button2_Click.

另一种方法是右键单击InitializeComponent()并选择“转到定义”(带您到Form1.designer.cs)并查找以下内容:

button2.OnClick += new EventHandler(button2_Click);

如果您已确认它已绑定,我们将需要查看比您显示的更多内容来确定问题。

于 2013-03-08T21:14:22.630 回答