datagridview单元格回车弹窗传值

Mr.Huang…… 2019-04-25 05:33:01
想实现下面的效果,单元格的值传入到另一个窗体的textbox,然后选中的数据返写回原单元格

现在是

Form_产品列表 My_产品列表 = new Form_产品列表(dataGridView_销售单明细.Rows[RowIndex].Cells["产品名称"].Value.ToString());

这步报错““System.NullReferenceException”类型的未经处理的异常在 销售管理.exe 中发生

其他信息: 未将对象引用设置到对象的实例”,麻烦帮忙看看



int RowIndex; //选中行
int ColumnIndex;//选中列

private void dataGridView_销售单明细_EditingControlShowing(object sender, DataGridViewEditingControlShowingEventArgs e)
{
if (e.Control is DataGridViewTextBoxEditingControl)
{
DataGridView dgv = (DataGridView)sender;

DataGridViewTextBoxEditingControl tb = (DataGridViewTextBoxEditingControl)e.Control;

tb.KeyDown -= new KeyEventHandler(dataGridView_销售单明细_KeyDown);

RowIndex = dgv.CurrentCell.RowIndex;
ColumnIndex = dgv.CurrentCell.ColumnIndex;

if (dgv.CurrentCell.OwningColumn.Name == "产品名称")
{
tb.KeyDown += new KeyEventHandler(dataGridView_销售单明细_KeyDown);
}
}
}


protected override bool ProcessCmdKey(ref Message msg, Keys keyData)
{
if (keyData == Keys.Enter)
{

if (dataGridView_销售单明细.Columns[ColumnIndex].Name == "产品名称")
{
Form_产品列表 My_产品列表 = new Form_产品列表(dataGridView_销售单明细.Rows[RowIndex].Cells["产品名称"].Value.ToString());
Point P = new Point(PointToScreen(dataGridView_销售单明细.GetCellDisplayRectangle(ColumnIndex, RowIndex, false).Location).X,
PointToScreen(dataGridView_销售单明细.GetCellDisplayRectangle(ColumnIndex, RowIndex, false).Location).Y + dataGridView_销售单明细.Location.Y + 22);
My_产品列表.Location = P;
My_产品列表.ShowDialog();
if (My_产品列表.DialogResult == DialogResult.OK)
{
dataGridView_销售单明细.Rows[RowIndex].Cells["产品ID"].Value = My_产品列表.return_产品ID;
dataGridView_销售单明细.Rows[RowIndex].Cells["产品名称"].Value = My_产品列表.return_产品名称;
}
return true;
}
else
{
SendKeys.Send("{tab}");
return true;
}
}
return base.ProcessCmdKey(ref msg, keyData);
}



...全文
160 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
eaqpi 2019-04-26
  • 打赏
  • 举报
回复
如果,后面绑了数据表的话,真心不建议直接写入datagridview,建议写入DataTable。

Mr.Huang…… 2019-04-26
  • 打赏
  • 举报
回复
引用 1 楼 exception92 的回复:
Rows[RowIndex].Cells["产品名称"].Value
-》rows,cells,value 都又可能为null
http://www.cnblogs.com/alexis/archive/2010/11/06/1870519.html 调试判断一下



难道是编辑状态回车已录入部分还没赋值给value,不能这样取值
exception92 2019-04-26
  • 打赏
  • 举报
回复
Rows[RowIndex].Cells["产品名称"].Value -》rows,cells,value 都又可能为null http://www.cnblogs.com/alexis/archive/2010/11/06/1870519.html 调试判断一下

110,537

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧