0

関数内でイベントを呼び出すにはどうすればよいですか? エラーが発生Object reference not set to instance of an objectしていて、エラーが指摘されているため:_e.RowIndex

そして、関数内でイベントを呼び出す方法を知りたいと思っていました。からイベントを呼び出すことができるようにnew EventHandler(....)なりましたが、関数内でイベントを呼び出したいのですが、エラーが発生しましたObject reference not set to instance of an object

コードは次のとおりです。

private void UpdateQuantityDataGridView(object sender, EventArgs e)
{
  DataGridViewCellEventArgs _e = null;

  cmdSelect.Parameters.Add( "ProductCode" , System.Data.OleDb.OleDbType.VarChar ) ;
  cmdSelect.Parameters[ "ProductCode" ].Value = dataGridView1[ "Product Code" , _e.RowIndex].Value;

}

上記のコードは正しい方法でしたか?

編集済み

これは私が関数を呼び出した場所ですUpdateQuantityDataGridView:

if (_choice.comboBox1.Text == "English")
                {
                    System.Media.SoundPlayer _sounds = new System.Media.SoundPlayer(@"C:\Windows\Media\Windows Exclamation.wav");
                    _sounds.Play();
                    MessageBox.Show("Updated Successfully!", "Updated");

                    ShowButtons(sender, e);

                    DisableColumnEdited(sender, e);

                    UpdateQuantityDataGridView(sender, e);
                }

これが私のケースです:

ユーザーが DataGridView でデータを編集し、ユーザーが [OK] ボタンをクリックすると、上記のコードが実行され、DataGridView からデータベースが更新されるためDataGridViewCellEventArgs、関数内にアクセスしたいのです。を使用してそれを呼び出すと、達成できず、機能しませんnew EventHandler(....)

4

3 に答える 3

4

変数 _e を null に設定しています。次に、設定したことがないときに _e.RowIndex を参照しています。

于 2013-09-27T17:51:50.733 に答える
3

あなたは(あなたが発見したように)を作成_eするnullそれを使用しようとしています。NullReferenceException

新しい変数を作成する代わりにeasをキャストしたいと思います。DataGridViewCellEventArgs

private void UpdateQuantityDataGridView(object sender, EventArgs e)
{
  cmdSelect.Parameters.Add( "ProductCode" , System.Data.OleDb.OleDbType.VarChar ) ;
  cmdSelect.Parameters[ "ProductCode" ].Value = dataGridView1[ "Product Code" , ((DataGridViewCellEventArgs)e).RowIndex].Value;

}

(コメントで述べたように、これは DataGridViewCellEventArsforのインスタンスを渡すことを前提としていますe。)

于 2013-09-27T17:52:19.390 に答える
0

に設定_eしていnullます。

次に、そのRowIndexプロパティにアクセスしようとします。これが をスローしているものですNullReferenceException

コードサンプルがやろうとしているのは、パラメータを に追加することだけですcmdSelect。正確に何を達成しようとしていますか?

于 2013-09-27T17:52:31.277 に答える