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

解决方案 »

  1.   

    <%@ Page Language="C#" AutoEventWireup="false" debug="true"%>
    <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN" > 
    <html>
      <head>
        <title>CSharpTemp</title>
        <meta name=vs_defaultClientScript content="JavaScript">
       <SCRIPT LANGUAGE="JavaScript">
       <!--
       // 响应回车键事件
       function test()
       {
    if(event.keyCode == 13)
    {
    alert("响应回车键事件");
    }
       }
       //-->
       </SCRIPT> <script runat="server">
    private void Page_Load(object sender, System.EventArgs e)
    {
    TextBox1.Attributes["onkeydown"] = "test();";
    Response.Write("aaaa");
    } override protected void OnInit(EventArgs e)
    {
    InitializeComponent();
    base.OnInit(e);
    }

    private void InitializeComponent()
    {    
    this.Load += new System.EventHandler(this.Page_Load);
    }

    </script>
      </head>
      <body onload="Form1.TextBox1.focus();">
        <form id="Form1" method="post" runat="server">
    <p>焦点在TextBox里按回车键</p>
    <asp:TextBox id="TextBox1" runat="server"/>
        </form>
      </body>
    </html>
      

  2.   

    哎呀,不是Web中啊,是WinForm里!
      

  3.   

    在WinForm里我用上面的方法实现过,但是机箱小喇叭总会在按下回车时响一下,很郁闷!
      

  4.   

    参考如下:键事件按下列顺序发生: KeyDown 
    KeyPress 
    KeyUp 
    要仅在窗体级别处理键盘事件并且不允许其他控件接收键盘事件,请将窗体的 KeyPress 事件处理方法中的 KeyPressEventArgs.Handled 属性设置为 true。某些键,如 TAB、RETURN、ESCAPE 和箭头键,由控件自动处理。为使这些键引发 KeyDown 事件,必须在窗体上的每个控件中重写 IsInputKey 方法。用于重写 IsInputKey 的代码需要确定是否按下了某一个特殊键,并且需要返回一个 true 值。
      

  5.   

    private void textbox1_KeyUp(object sender, System.Windows.Forms.KeyEventArgs e)
    {
    if(e.KeyValue==13)
    {
    //你要执行地事件
    }
    }
      

  6.   

    感谢hbxtlhx(下着春雨的天),我搞定了@_@*