0

これが私のコードです。何らかの理由でボタン2が起動せず、ボタン1が起動し、ボタン2のコードを1つに配置すると、そこで機能します。ボタン 1 と 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 に答える