我怎么做一个删除按钮来实现像 按delete 这样删除一条记录的功能。

解决方案 »

  1.   

    可以在前面加个checkbox 然后监听键盘 检测到按下了delete的话
    就统计有几个checkbox的checked为true
    然后就删除
      

  2.   

    我说一下,DataGrid下 如果 按下 "delete" 这个键,就会删除一条记录。
    现在我想做是有个“删除”按钮,只要按下这个“删除”按钮就会模拟发出键盘"delete"被按下,也就会删除相应的记录。
      

  3.   

    楼主不防这样试试:
    在datagrid的   
     Private Sub DataGrid1_KeyPress(ByVal sender As Object, ByVal e As System.Windows.Forms.KeyPressEventArgs) Handles Button1.KeyPress
            Messagebox.show(e.KeyChar)
        End Sub
    捕获键盘按下:"delete"键然后根据选中的行删除~(datagrid(datagrid.CurrentRowIndex,哪列)
      

  4.   

    我很怀疑,那个按扭好象不能被KEYPRESS捕获的
      

  5.   

    to:napsoft(乡下人) 你可能没仔细看我的问题。
    我总结一下,就是我现在点一个按钮想模拟发出"delete"按键消息,可以吗。to:canserly(嘿,朋友)
    由按钮按下模拟发出“del”被按下的消息应该是可以的吧~~~被datagrid捕获应该也可以,但是这是个难点了。
      

  6.   

    to:canserly(嘿,朋友)
    写代码直接删除选中的数据,你能提供一下代码吗。
    目前我是实现了按删除按钮实现删除一行的代码,但是想像按“del”键一下子删除多行没搞懂。
      

  7.   

    我错了,由按钮按下模拟发出“del”被按下的消息应该是可以的,也可以被datagrid捕获,但是这个时候已经不知道datagrid的哪个记录被选中了,因为datagrid的焦点在按钮被按下的时候已经失去了,不知道我这个想法是否错误
      

  8.   

    其实有一个办法可以达到你的要求!
    第一步:循环,把选择行的索引存入数组。
    第二步:循环,对数组中的索引值进行批量删除。
    第三步:把按钮事件的快捷键设为DEL,则可以在此事件中写提示信息,原DEL的功能被覆盖。
      

  9.   

    支持一下,我虽不知道怎么解决这个问题,但我知道计算机操作不是太熟练的人的经常会用DELETE来删除。
      

  10.   

    try
    {

    ArrayList   al   =   new   ArrayList();
    ArrayList   al1  =   new ArrayList();
    int iflag = 0;
    for   (int   ix=0;ix<this.ds1.Tables[0].Rows.Count;ix++)
    {
    if   (this.dataGrid1.IsSelected(ix))
    {
    iflag = 1;
    al.Add(ix);
    al1.Add(ds1.Tables[0].Rows[ix][0]);
    }
    }
    if(iflag == 0)
    {
    MessageBox.Show("请选择要删除的行");

    return;
    }
    else
    {
    }用循环取得要删除的行号,必要时候取得主键。然后用ds1.Tables[0].Rows[a].Delete();
    ds1.Tables[0].AcceptChanges();删除DS中刚才标记在数组中的内容。最后用循环拼一条SQL把数据库中内容删除掉