请教一个datagridview 行中回车的问题

yingxiongmingduan 2012-12-04 11:03:44
请教大家一个问题:
现在我在datagridview行中如果我在第一列中粘贴数据库表中的数据然后敲回车就能带出这条数据的相关内容,请问一下这个代码怎么写?
谢谢!
...全文
235 10 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
10 条回复
切换为时间正序
请发表友善的回复…
发表回复
yingxiongmingduan 2012-12-06
  • 打赏
  • 举报
回复
还是不行啊 ? 其实我要求也不是很复杂:就是我复制一个表的字段在dataGridview输入后敲回车就把相关带出来,只是我现在做出来的是还是需要我重新选择比较麻烦。
mayunshui 2012-12-04
  • 打赏
  • 举报
回复
在事件 CellValueChanged ,CellEndEdit 内写方法读取数据显示出来
yingxiongmingduan 2012-12-04
  • 打赏
  • 举报
回复
谢谢版主 我先试一试
yingxiongmingduan 2012-12-04
  • 打赏
  • 举报
回复
引用 1 楼 bdmh 的回复:
CellValidated CellValidating CellValueChanged CellEndEdit 几个事件里都可以
版主能具体一点不?
yingxiongmingduan 2012-12-04
  • 打赏
  • 举报
回复
我现在就是写成的是敲回车就可以新增一行,但是和自己想要的结果还差很远,麻烦有空的朋友帮忙看看
bdmh 2012-12-04
  • 打赏
  • 举报
回复
CellValidated
CellValidating
CellValueChanged
CellEndEdit
几个事件里都可以,比如

private void grid_Main_CellValidating(object sender, DataGridViewCellValidatingEventArgs e)
{
int row = e.RowIndex;
int col = e.ColumnIndex;
string str = grid_Main.Rows[row].Cells[col].EditedFormattedValue.ToString();
if (grid_Main.Rows[row].Cells[col].Value != null &&
str == grid_Main.Rows[row].Cells[col].Value.ToString())
{
return;
}
if (grid_Main.CurrentCell.ColumnIndex == grid_Main.Columns["col_code"].Index && (ItemType)grid_Main.Rows[row].Cells["col_zmtype"].Tag != ItemType.SectionItem)
{
if (string.IsNullOrEmpty(str)) return;
if ((ItemType)grid_Main.Rows[row].Cells["col_zmtype"].Tag == ItemType.BillItem)
{
DataTable dt = this.dataTransaction.GetDataTable("Bill");
if (dt == null)
{
dt = this.dataTransaction.GetDataTable("select * from Bill", "Bill", DataBaseType.BillDB);
}
DataRow[] rows = dt.Select("billcode='" + str + "'");
if (rows.Length == 0) return;
FillBillInfo(rows[0], false);
}
else if ((ItemType)grid_Main.Rows[row].Cells["col_zmtype"].Tag == ItemType.NormItem)
{
DataTable dt = this.dataTransaction.GetDataTable("Norm");
if (dt == null)
{
dt = this.dataTransaction.GetDataTable("select * from Norm", "Norm", DataBaseType.NormDB);
}
DataRow[] rows = dt.Select("normcode='" + str + "' and procode='" + normProKind + "'");
if (rows.Length == 0) return;
FillNormInfo(rows[0], false);
}
}
else if (col == grid_Main.Columns["col_amount"].Index)
{
this.projectTransaction.UpdateValuationItem(grid_Main.Rows[row], row);
}
else
{
this.projectTransaction.UpdateValuationItem(grid_Main.Rows[row], row);
}
}
lenovore 2012-12-04
  • 打赏
  • 举报
回复
dgvpd.Columns[bf.GetNode("gridcolumn4", "ProcPlan")].Index 改成dgvpd.Columns[你的列名]Index//这里是你第一列的列名的索引
lenovore 2012-12-04
  • 打赏
  • 举报
回复
void Txt_KeyDown(object sender, KeyEventArgs e) { if (dgvpd.CurrentCell.ColumnIndex == dgvpd.Columns[bf.GetNode("gridcolumn4", "ProcPlan")].Index) { if(e.KeyCode==Keys.Enter) { if (((TextBox)sender).Text == "") return; ((TextBox)sender).Text//就是你那行那列输入的值 } } }
lenovore 2012-12-04
  • 打赏
  • 举报
回复
private void dgvpd_EditingControlShowing(object sender, DataGridViewEditingControlShowingEventArgs e) { try { if (dgvpd.CurrentCell.RowIndex == -1) return; if (dgvpd.CurrentCell.ColumnIndex == dgvpd.Columns[bf.GetNode("gridcolumn4", "ProcPlan")].Index) { ((TextBox)e.Control).KeyDown += new KeyEventHandler(Txt_KeyDown); } } catch (Exception ex) { txtError.Text = ex.Message; } } void Txt_KeyDown(object sender, KeyEventArgs e) { if (((TextBox)sender).Text == "") return; }
yingxiongmingduan 2012-12-04
  • 打赏
  • 举报
回复
版主在打扰一下:FillNormInfo这个是那里定义的?麻烦给一点中文注释,谢谢!

111,097

社区成员

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

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

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