现在可以捕获到其他键盘按键,但按下回车键时会直跳转到下一行,不会激活事件,请怎样可以? 

解决方案 »

  1.   

    onkeydown
    捕捉到“回车键”后,event.returnValue=false;再做你自己的处理
      

  2.   

    http://www.syncfusion.com 的faq里去找找
      

  3.   

    看样子就是WinForm下的DataGrid了
    好了给你现成的吧:
    public class MyDataGrid : DataGrid 
     

      protected override bool ProcessCmdKey(ref System.Windows.Forms.Message msg, System.Windows.Forms.Keys keyData) 
     

     
    if(EnterAsTab&&msg.WParam.ToInt32() == (int) Keys.Enter) 
     

     
    SendKeys.Send("{Tab}");
     
    return true; 
     

     
    return base.ProcessCmdKey(ref msg, keyData); 
     

     

    创建你的类库,把这放进去编译一下
    再把放在你自己的工具箱中,拖到窗体中,试试吧,实在还不会,有机会我就给你一个dll好了,我自己的功能稍稍多些
      

  4.   

    对了,上面的EnterAsTab是一个属性,你可以自己添加,要不删除它
    为了能一次把代码贴出就没全贴了
      

  5.   

    -----------------------
    可是我现在无法捕获到回车键啊,一回车系统自动就跳到下一行去了.
    -----------------------我说的是onkeydown,肯定能捕捉到回车键的,如果你不做event.returnValue=false就有可能会失去焦点。你可以试试先。
    event.returnValue=false;
    return false; //这句需不需要我不确定,你试试吧。
      

  6.   

    在asp.net中,如何回车触发指定按钮的事件?
    假设:
    <asp:TextBox id="TextBox1" runat="server" Width="240px"></asp:TextBox>
    <asp:Button id="ButtonOK" runat="server" BorderWidth="1px" BorderColor="Purple" BorderStyle="Solid" Text="Search Site"></asp:Button> 解决方法:
    在.aspx页面中添加:
    <SCRIPT LANGUAGE="javascript">
    function EnterKeyClick(button) 
    {    
     if (event.keyCode == 13) 
     {        
      event.keyCode=9;
      event.returnValue = false;
      document.all[button].click(); 
     }
    }
    </SCRIPT> 在Page_Load事件中添加:
    TextBox1.Attributes.Add("onkeydown","EnterKeyClick('ButtonOK');");
      

  7.   

    this.TextBox1.Attributes.Add("onkeydown","if(event.keyCode == 13){document.getElementById('按钮ID').click();");
      

  8.   

    function enterkey()
    {
    try
    {
    var el_keydown=window.event.srcElement;
    if(event.keyCode==13 && el_keydown.name=="textfield")  //如果在  textfield这个输入框中按回车
    {    
    document.all.hrf.focus();
              }
    }
    catch(e)
       {
    alert (e.message);
        }
            }
    关键字:</font> <input type="text" onkeyDown="enterkey();" name="textfield" class="input3">
      

  9.   

    对不起,引起了大家的误会,是WinForm.
     lovevsnet(编程一把手) 所说的方法,现在正在用,只是希望可以找到更直接一点的方法,所以来请教高手,是不是只能那种方法,不能用DataGridText直接捕获吗?感谢大家.
      

  10.   

    用我那现成的试过没有
    如果不想自己写DataGrid
    再告诉你一个简单的方法,那就是对Form1操作,因为DataGrid总会在窗口中吧
    Form1.KeyPreview=true;
    在Form1的KeyUp事件中加入如下代码:
    private void Form1_KeyUp(object sender, System.Windows.Forms.KeyEventArgs e)
    {
    if(e.KeyCode==Keys.Enter)
    SendKeys.Send("{Tab}");

    }
    ---------------------------------------------
    不过我还是推荐你用我上面的方法重写DataGrid
      

  11.   

    我推荐你用我上面方法重写DataGrid的原因是:当你手动添加的每一列DataGridTextBoxColumn

    用Form1的KeyUp事件可能会失效(跳到下一行)