高手指点 winform 中,按下“delete”键 删除datagrid中一行数据时,如何弹出确认对话框?

emma4518 2006-11-01 07:51:59
如题。
...全文
223 3 打赏 收藏 举报
写回复
3 条回复
切换为时间正序
当前发帖距今超过3年,不再开放新的回复
发表回复
emma4518 2006-11-01
  • 打赏
  • 举报
回复
以上内容摘自愚翁的回复,在此深表谢意.
emma4518 2006-11-01
  • 打赏
  • 举报
回复
在本身DataGrid中没有此类事件进行直接处理,你需要去接获传给DataGrid的消息,从而预先处理。



大致的方法是,编写一个类去继承DataGrid,然后重载PreProcessMessage 函数,具体代码如下。

public class comDataGrid:DataGrid

{

private const int WM_KEYDOWN = 0x100;

public override bool PreProcessMessage( ref Message msg )

{

// Get press key code

Keys keyCode = (Keys)(int)msg.WParam & Keys.KeyCode;



if( this.DataSource != null )

{

// Full row selected

if( this.IsSelected( this.CurrentCell.RowNumber ) )

{

// The key code is "Delete"

if(msg.Msg == WM_KEYDOWN && keyCode == Keys.Delete )

{

// Show confirmation info

if( MessageBox.Show("Delete this row?",

"",

MessageBoxButtons.YesNo) == DialogResult.No )

return true;

}

}

}

return base.PreProcessMessage(ref msg);

}

public comDataGrid():base(){}

}



然后只要把程序中所有的“DataGrid”替换成“comDataGrid”,其他代码保持不变就可以使用了。

Knight94 2006-11-01
  • 打赏
  • 举报
回复
如何在DataGrid中按Del键进行删除之前能给出提示以求确认
http://blog.csdn.net/knight94/archive/2006/03/31/646264.aspx
相关推荐
发帖
C#

10.8w+

社区成员

.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
帖子事件
创建了帖子
2006-11-01 07:51
社区公告

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