[VB.NET]VB2005中文本框的两个小问题

前端之家收集整理的这篇文章主要介绍了[VB.NET]VB2005中文本框的两个小问题前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
VB2005中文本框的两个小问题 1.当文本框得到焦点时选中所有内容 在6.0中 Private Sub Text1_GotFocus() Text1.SelStart = 0 Text1.SelLength = Len(Text1.Text) End Sub 这样是可以的 在2005中 Private Sub TextBox1_GotFocus(ByVal sender As Object,ByVal e As System.EventArgs) Handles TextBox1.GotFocus TextBox1.SelectionStart = 0 TextBox1.SelectionLength = TextBox1.TextLength End Sub 却不行 2.能否禁止文本框不接受粘贴功能,或是有粘贴功能时就触发某一事件? __________________________________________________________________________ 2.能否禁止文本框不接受粘贴功能,或是有粘贴功能时就触发某一事件? 这话怎读起来那么别扭? 改改: 2.能否让文本框不接受粘贴功能,或是有粘贴功能时就触发某一事件? __________________________________________________________________________ 你先看一下TextBox.ShortcutsEnabled 属性 能否解决你问题。 __________________________________________________________________________ .NET Framework 类库 TextBoxBase.ShortcutsEnabled 属性 注意:此属性在 .NET Framework 2.0 版中是新增的。 获取或设置一个值,该值指示是否启用已定义的快捷方式。 属性值 如果启用快捷方式,则为 true;否则为 false。 备注 使用 ShortcutsEnabled 属性来启用或禁用下面的组合快捷键: Ctrl+Z Ctrl+E Ctrl+C Ctrl+Y Ctrl+X Ctrl+Backspace Ctrl+V Ctrl+Delete Ctrl+A Shift+Delete Ctrl+L Shift+Insert Ctrl+R 可以重写此属性以指定其他快捷键。 __________________________________________________________________________ txtBox.focus应该就行 __________________________________________________________________________ 竟然能在此区看到hbxtlhx(平民百姓)真是高兴 先谢谢了 我看看先 __________________________________________________________________________ 把TextBox.ShortcutsEnabled的设为False后确实不能再复制粘贴,鼠标右键也禁止了 刚接触.NET没多久,重写还无从下手呢 第2个问题已解决 可是第一个问题还是不行,当用鼠标点中文本框后并没有选中文本框内的内容,只是有一个输入光标存在 __________________________________________________________________________ 你添加如下的两个事件试试看: private void textBox1_Enter(object sender,EventArgs e) { this.textBox1.SelectAll(); } private void textBox1_MouseDown(object sender,MouseEventArgs e) { this.textBox1.SelectAll(); } __________________________________________________________________________ textBox1_MouseDown可以实现鼠标点下时选中框内所有内容 但是问题又出来了 在6.0中第一次进入时是选中所有内容,当再点一次时就输入状态,而这却始终是选中状 __________________________________________________________________________ 哦! 这都是Windows默认控件Edit在.NET中的实现造成的问题,如果你一定要处理的和VB6.0一样,你可能要对TextBox的WndProc这个事件做一些处理了! __________________________________________________________________________ TextBox没有WndProc这个事件吧在VB2005中好像是没有 C#中没去看 __________________________________________________________________________ 1、 TextBox1.SelectAll() 选中全部 2、 Private Sub TextBox1_KeyPress(ByVal sender As Object,ByVal e As System.Windows.Forms.KeyPressEventArgs) Handles TextBox1.KeyPress If (Asc(e.KeyChar)) = 22 Then Ctrl+V 无效 e.Handled = True End If End Sub 3、鼠标右键 __________________________________________________________________________ 1、 TextBox1.SelectAll() 选中全部 2、 Private Sub TextBox1_KeyPress(ByVal sender As Object,ByVal e As System.Windows.Forms.KeyPressEventArgs) Handles TextBox1.KeyPress If (Asc(e.KeyChar)) = 22 Then Ctrl+V 无效 e.Handled = True End If End Sub 3、鼠标右键 __________________________________________________________________________ 谢谢楼上的兄弟 不过第1点还是没有解决,你的答案连事件都没有 还有就是e.Handled = True代表何意? __________________________________________________________________________ 在VB2005中,你的GetFocus代码是有用的.只不过由于GetFocus调用在Click这前,因此当点下鼠标时,本来全选的状态被冲掉了. 你看看我下面给的代码,可以解决你的第一个问题,不要忘了给分噢! Public Class Form1 Dim blnFlag As Boolean = False Private Sub TextBox1_Click(ByVal sender As Object,ByVal e As System.EventArgs) Handles TextBox1.Click If blnFlag Then TextBox1.SelectAll() blnFlag = False End Sub Private Sub TextBox1_GotFocus(ByVal sender As Object,ByVal e As System.EventArgs) Handles TextBox1.GotFocus blnFlag = True End Sub End Class __________________________________________________________________________ 楼上兄弟的变通方法确实可行 不过把 If blnFlag Then TextBox1.SelectAll() blnFlag = False 放在TextBox1_MouseDown事件中就更理想了 在Click事件中要等鼠标UP后才能选中,感觉不爽 __________________________________________________________________________

猜你在找的VB相关文章