将 from1 设置 AcceptButton为  Button1 Button1 的事件如下:
 private void button1_Click(object sender, EventArgs e)
        {
            MessageBox.Show("ok!");
        }运行后,当用户按下  Enter 键不放时,会弹出很多个对话框.我想 按下  Enter 键不放时仍然显示一个对话框出来,要想显示下一个对话框必须松开键盘,然后再按  Enter 键 ,这种做法如何实现?

解决方案 »

  1.   

    方法太多了
    1. 禁用按钮
    2. 用自己的message form. form.showDialog(). 不关掉这个,点不到后边任何东西
      

  2.   

    MessageBox.Show("ok!"); //后面加:
    button1.Enable=false;
      

  3.   

    比较笨的方法就是给个bool值最开始为true,点过之后该值为fals
      

  4.   

    建议你还是做自己的message form. 这样更好,更规范,今后自己可以对对话框进行改造
      

  5.   


    松开键盘,然后再按  Enter 键 没有执行任何代码啊?因为button1.Enable=false;
      

  6.   


    private void button1_Click(object sender, EventArgs e)
            {            MessageForm form = new MessageForm();
                form.ShowDialog();
            }
      

  7.   

    将 from1 设置 AcceptButton为  Button1 Button1 的事件如下: 
    private void button1_Click(object sender, EventArgs e) 
            { 
                ……这里执行一段代码
            } 运行后,当用户按下  Enter 键不放时,会多次执行button1的事件代码. 我想 按下  Enter 键不放时只执行button1的事件代码一次,要想再执行button1的事件代码必须松开键盘,然后再按  Enter 键 ,这种做法如何实现?
      

  8.   


    根本的屏蔽了多次 Enter 的问题。 而且,规范。 更利于你自己对messaogebox的改造。
      

  9.   

    没有。除非你Enter键还绑定了其他事件。
    但我觉得楼上那个方法确实更规范人性一些。
      

  10.   

    看看CSDN回复的"提交回复"吧..有现成的..直接扒下来就行了..
      

  11.   


    <input type="submit" name="bt_Submit" value="提交回复" id="bt_Submit" class="button" />
    <script type="text/javascript"> //<![CDATA[
    document.getElementById("tb_ReplyBody___Editor").style.width = "700px";
    try { document.domain = "csdn.net" } catch (ex) { };
    document.getElementById("bt_Submit").onclick = function() {
    setTimeout(function() {
    var btn = document.getElementById("bt_Submit");
    btn.disabled = true;
    setTimeout(function() { btn.disabled = false }, 10000);}, 10);
    }
    //]]></script>
      

  12.   

    MessageBox.Show()好像是模式窗体,如果楼主只是拿这个打比方,而自己实际用的是其他自己写的窗体,可以使用单例模式。
      

  13.   

    LZ你的代码究竟是怎样的?如果是
    private void button1_Click(object sender, EventArgs e) 
            { 
                MessageBox.Show("ok!"); 
            } 
    那么意味这你按住Enter不放时,不断的执行弹出messagebox,关闭messagebox这样一个循环的过程。不会生成多个messagebox如果是
    private void button1_Click(object sender, EventArgs e) 
            { 
                Form f  = new Form();
                f.Show();
            } 那当f show出来以后,焦点就到f上了,也不会继续响应Enter了。
      

  14.   

    按钮.Enable=false; 
    这个最容易
      

  15.   

    可行。!!!方便!新建一个 页面 MessageForm  为消息提示页面!
    构造函数,,,来个 参数! 方便 任何窗体可调用!
      

  16.   


    private void button1_Click(object sender, EventArgs e)
    {
        button1.Enable=false;
        MessageBox.Show("ok!");
        button1.Enable=true;
      

  17.   

    xue xi  xue xi 
      

  18.   

    MessageBox.Show("ok!"); //后面加: 
    button1.Enable=false;楼上的这个方法就可以啊
      

  19.   

    多谢楼上各位指点!以下会搞定!private void button1_Click(object sender, EventArgs e) 
            { 
               ……执行代码
               button1.Enable=false;         }private void Form1_KeyUp(object sender, KeyEventArgs e)
            {
                button1.Enable=true; 
            }