小弟我写了1个winform程序,发现按ctrl + a不能选择TextBox中的所有内容,
  我加了个keyPress事件,但是我不知道怎么写这个代码!
   
  各位大虾帮忙 ,有其他的更好的方法也可以说出来.

解决方案 »

  1.   

    private void Form1_KeyDown(object sender, System.Windows.Forms.KeyEventArgs e)
    {
    if (e.Control && e.KeyCode == Keys.A)
    {
    textBox1.SelectAll();
    textBox1.Focus();
    }
    }
      

  2.   

    注意将Form的KeyPreview属性设置为True,
    另外也可以重写Form的ProcessCmdKey等的实现来做到,如果lz有兴趣可以去找找这些的实现方法。
      

  3.   

    给楼上:为什么不直接写 textBox1.KeyDown 事件处理?
      

  4.   

    先将Form的KeyPreview属性设置为True
    然后填入以下代码就能实现你的要求了!
     Protected Overrides Sub OnKeyDown(ByVal e As System.Windows.Forms.KeyEventArgs)
            If e.Control = True Then
                If e.KeyCode = Keys.A Then
                    TextBox1.SelectAll()
                End If
            End If
        End Sub
      

  5.   

    to netmicro(麦):
    可以在textBox中处理,我这么做,是为了更好处理这个事件,对于焦点不在textBox上时也可以处理,有更好的易用性,无他。
      

  6.   

    to s5689412(华君):
    原谅我的挑剔,但是焦点不在textBox1里我认为就不应该全选textBox1的内容——如果我在另一个TextBox里编辑的时候按Ctrl+A,焦点忽然跳到textBox1并且全选了,我会认为我电脑被木马控制了
      

  7.   

    to netmicro(麦):
    我觉得只是个人的选择问题了,看lz需要,你说的情况的确存在,不过也可能整个窗口上就只有一个TextBox的话,用户应该可以随时选中TextBox的内容。
      

  8.   

    to starring(漂流⊙一组):你漏了一个很重要的调用(在结尾,两个End If之后):MyBase.OnKeyDown(e)