0

winforms アプリにデータグリッドがあり、ユーザーがデータグリッドのセルをダブルクリックすると、次のメソッドが呼び出されます。

private void dataCaseDiary_CellDoubleClick(object sender, DataGridViewCellEventArgs e)
    {
        try
        {
            int cellRow = e.RowIndex;
            int cellCol = e.ColumnIndex;
            DataTable table = (DataTable)dataCaseDiary.DataSource;
            var currentDiaryID = table.Rows[cellRow]["DiaryID"];
            var currentUser = table.Rows[cellRow]["To Action"];
            var currentType = table.Rows[cellRow]["Diary Type"];
            txtDiaryID.Text = currentDiaryID.ToString();
            cboReassign.Text = currentUser.ToString();
            cboAmendDiaryType.Text = currentType.ToString();
        }
        catch (Exception eX)
        {
            MessageBox.Show(eX.Message);
        }
    }

ただし、行で例外が発生します

cboAmendDiaryType.Text = currentType.ToString();

例外は、「オブジェクト参照がオブジェクトのインスタンスに設定されていません」と述べています。

私はこれを見て時間を費やしましたが、何が間違っていたのかわかりません。3 つの var 変数はすべてデータグリッドから正しい値を取得し、そのうちの 2 つはフォーム上のコントロールのテキスト値にポストしますが、3 つ目は失敗します。

私が使用するプレフィックス「txt」はテキスト ボックス コントロールを意味し、「cbo」はコンボ ボックスを意味します。

4

1 に答える 1

0

問題は、table.Rows[cellRow]["Diary Type"]存在せず、null を返すことです。「日記の種類」は正しい列名ではないと思います。

于 2012-04-06T13:58:25.287 に答える