私は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」はコンボボックスを意味します。
"Diary Type"という名前の列はありますか? 「DiaryType」が必要なのでしょうか? – Reniuz
私はそれも考えていましたが、「3つのvar変数はすべてデータグリッドから正しい値を取得します」 OP:実際に満たされていることを確認しましたか? – Botonomous
cboAmendDiaryTypeを項目のリストにない値に設定しようとしていますか? – Justin