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

VB.NET源码-156个实用实例哦…… <script type="text/javascript"> </script> <script type="text/javascript" src="http://pagead2.googlesyndication.com/pagead/show_ads.js"> </script>
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后才能选中,感觉不爽
__________________________________________________________________________
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值