C# 向组合框控件文本值发布过帐变量
我在winforms应用程序上有一个datagrid,当用户双击datagrid上的单元格时,将调用以下方法C# 向组合框控件文本值发布过帐变量,c#,winforms,datagrid,C#,Winforms,Datagrid,我在winforms应用程序上有一个datagrid,当用户双击datagrid上的单元格时,将调用以下方法 private void dataCaseDiary_CellDoubleClick(object sender, DataGridViewCellEventArgs e) { try { int cellRow = e.RowIndex; int cellCol = e.ColumnIndex;
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();
例外情况说明“对象引用未设置为对象的实例”
我花了一些时间来研究这个问题,却找不到我做错了什么。这三个var变量都从datagrid中获取正确的值,其中两个变量传递到表单上控件的文本值,但第三个变量失败
我使用的前缀“txt”表示文本框控件,“cbo”表示组合框。问题在于
表。行[cellRow][“日记类型”]
不存在,返回null。我猜“日记类型”不是正确的列名。您确定有“日记类型”的列名吗?也许你需要“日记类型”?我也这么认为,但他说“三个变量都从数据网格中获取了正确的值”OP:你检查过它们是否确实被填充了吗?你是否试图将CBOAMENDIARYTYPE设置为一个不在其项目列表中的值?@Anon我发现了,但你知道神奇字符串-总是可能键入错误。:@PJW你能添加代码如何填充数据网格吗,如果它是从DB获取的,请使用添加查询?不能是因为“var currentType”有一个价值,当我通过一步。