如何在DataGrid选定一行后按DEL键时拦截该事件? datagrid的onkeydown事件中应该可以捕捉del键吧或者DataTable.RowDeleting事件中对删除操作进行控制e.Action=DataRowAction.Nothing是不是可以达到目的? 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 在dataGrid的keyDown事件里定义Del事件 先谢帮忙!试了下,DataGrid的KeyDown事件不行hhzh426(春之风):DataTable.RowDeleting事件可以引发,但是e.Action=DataRowAction.Nothing在编译时会出现e.Action为只读的错误。也就是不能取消删除操作。如何才能验证不通过时取消删除呢? killer_wzb(浮云) :哪里的deletecommand事件?可否详细些? To JadyZhu(Jady Zhu) :看这个例子.5.54 How can I put up a confirmation question when the user tries to delete a row in the datagrid by clicking on the row header and pressing the Delete key?http://www.syncfusion.com/FAQ/WinForms/FAQ_c44c.asp#q889q 班兄,你真的太好了!这么好的东西,太感谢了!大家可以去看看,应该说DataGrid的很多问题都可以在这找到答案!强烈收藏!!! 问题没解决就结贴了,还望班兄再次帮忙。-----------public override bool PreProcessMessage( ref Message msg ) { Keys keyCode = (Keys)(int)msg.WParam & Keys.KeyCode; if(msg.Msg == WM_KEYDOWN && keyCode == Keys.Delete && ((DataView) this.grdEpiDetail.DataSource).AllowDelete) { if(MessageBox.Show("Delete this row?", "", MessageBoxButtons.YesNo) == DialogResult.No) return true; } return base.PreProcessMessage(ref msg); } -----------------------------------------------------以上是从答案处拷贝过来,但有两个问题,还请帮忙:1。如何通过上述代码重写WinForm中的DataGrid的PreProcessMessage方法?2。WM_KEYDOWN 如何设定值,并具体为什么意义?3。可否给点如何实现的思路? 两个简单的正式表达式求教 C# 如何监听数据库的连接 C#关于DBHelper类中ExecuteScalar()方法返回值问题!在线等 安装程序和注册表的问题 C#求字符串表达式值 如何实现将SQLServer2000里的表导入到foxpro里 报表中如何选择自定义的纸张大小? 一个关于datagrid的小问题 一个命名空间问题。期待高手指教!!! 如何让两个多行的datagrid同步滚动? 请熟悉C#和COM+的朋友进来,保证散分 一个有关水晶报表的问题,很急,在线等。
DataTable.RowDeleting事件可以引发,但是e.Action=DataRowAction.Nothing在编译时会出现e.Action为只读的错误。也就是不能取消删除操作。如何才能验证不通过时取消删除呢?
5.54 How can I put up a confirmation question when the user tries to delete a row in the datagrid by clicking on the row header and pressing the Delete key?
http://www.syncfusion.com/FAQ/WinForms/FAQ_c44c.asp#q889q
大家可以去看看,应该说DataGrid的很多问题都可以在这找到答案!
强烈收藏!!!
-----------
public override bool PreProcessMessage( ref Message msg )
{
Keys keyCode = (Keys)(int)msg.WParam & Keys.KeyCode;
if(msg.Msg == WM_KEYDOWN && keyCode == Keys.Delete
&& ((DataView) this.grdEpiDetail.DataSource).AllowDelete)
{
if(MessageBox.Show("Delete this row?", "",
MessageBoxButtons.YesNo) == DialogResult.No)
return true;
}
return base.PreProcessMessage(ref msg);
} -----------------------------------------------------
以上是从答案处拷贝过来,但有两个问题,还请帮忙:
1。如何通过上述代码重写WinForm中的DataGrid的PreProcessMessage方法?
2。WM_KEYDOWN 如何设定值,并具体为什么意义?
3。可否给点如何实现的思路?