vb textbox文本框问题

yucew 2009-06-12 11:15:25

我想textbox文本框里输入数值123456789,要求每输入一个数值就自动添加一个空格。

那么,运行结果应该是为1 2 3 4 5 6 7 8 9 ,不是123456789。

这个怎么做呢
...全文
80 22 打赏 收藏 转发到动态 举报
写回复
用AI写文章
22 条回复
切换为时间正序
请发表友善的回复…
发表回复
outou 2009-06-12
  • 打赏
  • 举报
回复
如果还是出现错误那就有可能是你的属性设定了,查看ImeMode的模式看看。
yucew 2009-06-12
  • 打赏
  • 举报
回复
Private Sub TextBox1_TextChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles TextBox1.TextChanged
TextBox1.Text = TextBox1.Text & " "
End Sub

这样会发生死响应的现象
outou 2009-06-12
  • 打赏
  • 举报
回复
不可能吧,我才试过,没有问题。
比如第一次输入1 ,第二次输入2,会显示为"1 2 "
vlsm 2009-06-12
  • 打赏
  • 举报
回复
[Quote=引用 7 楼 yucew 的回复:]
Private Sub TextBox1_TextChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles TextBox1.TextChanged
TextBox1.Text = TextBox1.Text & " "
End Sub

这是2008的环境
[/Quote]


这样就可以了
yucew 2009-06-12
  • 打赏
  • 举报
回复



Private str As String = ""

Private Sub TextBox1_LostFocus(ByVal sender As Object, ByVal e As System.EventArgs) Handles TextBox1.LostFocus
Me.TextBox1.Text = str & Me.TextBox1.Text & " "
str = Me.TextBox1.Text
End Sub

这样也是不行了
yucew 2009-06-12
  • 打赏
  • 举报
回复
Private Sub TextBox1_TextChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles TextBox1.TextChanged
TextBox1.Text = TextBox1.Text & " "
End Sub

这是2008的环境
outou 2009-06-12
  • 打赏
  • 举报
回复
这样写没有问题,已经试过,当输入新的值后光标一离开就会变的。

Private str As String = ""

Private Sub TextBox1_LostFocus(ByVal sender As Object, ByVal e As System.EventArgs) Handles TextBox1.LostFocus
Me.TextBox1.Text = str & Me.TextBox1.Text & " "
str = Me.TextBox1.Text
End Sub
古今多少事 2009-06-12
  • 打赏
  • 举报
回复
2008没有用过,2005是这样的:
textbox1.text=textbox1.text & " "

应该类似。
yucew 2009-06-12
  • 打赏
  • 举报
回复
我的是 vb2008
古今多少事 2009-06-12
  • 打赏
  • 举报
回复
是VB6.0吗?是什么错误提示?
yucew 2009-06-12
  • 打赏
  • 举报
回复
那样还是出现错误提示了
古今多少事 2009-06-12
  • 打赏
  • 举报
回复
在TextChanged事件里写:

text1.text=text1.text & " "
wzuomin 2009-06-12
  • 打赏
  • 举报
回复
20楼的这个方法试过啦,不错。

简化点

Public Class Form1

Private Sub TextBox1_KeyDown(ByVal sender As Object, ByVal e As System.Windows.Forms.KeyEventArgs) Handles TextBox1.KeyDown
Select Case e.KeyCode
Case Keys.D0 To Keys.D9, Keys.NumPad0 To Keys.NumPad9
If Me.TextBox1.Text <> "" Then
Me.TextBox1.Text = Me.TextBox1.Text & " "
End If
End Select
End Sub

Private Sub TextBox1_TextChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles TextBox1.TextChanged
Me.TextBox1.SelectionStart = Me.TextBox1.TextLength
End Sub

End Class
qshurufa 2009-06-12
  • 打赏
  • 举报
回复
[Quote=引用 20 楼 tj3004204004 的回复:]
VB.NET codePrivate Sub TextBox1_KeyDown(ByVal sender As Object, ByVal e As System.Windows.Forms.KeyEventArgs) Handles TextBox1.KeyDown
Select Case e.KeyCode
Case Keys.D1, Keys.D2, Keys.D3, Keys.D4, Keys.D5, Keys.D6, Keys.D7, Keys.D8, Keys.D9, Keys.NumPad0, Keys.NumPad1, Keys.NumPad2, Keys.NumPad3, Keys.NumPad4, Keys.NumPad5, Keys.NumPad6, Keys.NumPad7, Keys.NumPad8, Keys.Nu…
[/Quote]

不错。
tj3004204004 2009-06-12
  • 打赏
  • 举报
回复
Private Sub TextBox1_KeyDown(ByVal sender As Object, ByVal e As System.Windows.Forms.KeyEventArgs) Handles TextBox1.KeyDown
Select Case e.KeyCode
Case Keys.D1, Keys.D2, Keys.D3, Keys.D4, Keys.D5, Keys.D6, Keys.D7, Keys.D8, Keys.D9, Keys.NumPad0, Keys.NumPad1, Keys.NumPad2, Keys.NumPad3, Keys.NumPad4, Keys.NumPad5, Keys.NumPad6, Keys.NumPad7, Keys.NumPad8, Keys.NumPad9
If Me.TextBox1.Text <> "" Then
Me.TextBox1.Text = Me.TextBox1.Text & " "
End If
End Select
End Sub

Private Sub TextBox1_TextChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles TextBox1.TextChanged
Me.TextBox1.SelectionStart = Me.TextBox1.TextLength
End Sub
lqd122508706 2009-06-12
  • 打赏
  • 举报
回复
在Keydown里面写是比较长用的办法
kingsunmax 2009-06-12
  • 打赏
  • 举报
回复
Private Sub TextBox1_KeyPress(ByVal sender As Object, ByVal e As System.Windows.Forms.KeyPressEventArgs) Handles TextBox1.KeyPress
If e.KeyChar <> Chr(13) Then
If e.KeyChar = Chr(8) Then
e.Handled = True
Me.TextBox1.Text = Microsoft.VisualBasic.Left(Me.TextBox1.Text, Me.TextBox1.Text.Length - 2)
Else
e.Handled = True
Me.TextBox1.Text &= e.KeyChar.ToString & " "
End If
If Me.TextBox1.Text.Length > 0 Then
Me.TextBox1.SelectionStart = Me.TextBox1.Text.Length - 1
End If
End If

End Sub
yucew 2009-06-12
  • 打赏
  • 举报
回复
那么,具体怎样处理呢[Quote=引用 16 楼 billow_chentao 的回复:]
不能写到TextChanged事件里,因为会死循环。
可以考虑在KeyDown 或KeyPress事件里处理
[/Quote]
billow_chentao 2009-06-12
  • 打赏
  • 举报
回复
不能写到TextChanged事件里,因为会死循环。
可以考虑在KeyDown 或KeyPress事件里处理
yucew 2009-06-12
  • 打赏
  • 举报
回复
VB.NET code
Private str As String = ""

Private Sub TextBox1_LostFocus(ByVal sender As Object, ByVal e As System.EventArgs) Handles TextBox1.LostFocus
Me.TextBox1.Text = str & Me.TextBox1.Text & " "
str = Me.TextBox1.Text
End Sub

这个程序延续输入数值时,不会跟得空格了。
还有这个需要输入数值后,需要单击按钮,然后,必须光标点击文本框才有效了。
我的要求是延续输入数值时,同样延续跟住空格。123456789变成1 2 3 4 5 6 7 8 9了
[/Quote]
加载更多回复(2)

16,554

社区成员

发帖
与我相关
我的任务
社区描述
VB技术相关讨论,主要为经典vb,即VB6.0
社区管理员
  • VB.NET
  • 水哥阿乐
  • 无·法
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧