回 帖 发 新 帖 刷新版面

主题:新人求救vb文本框问题

请教各位高手,我在使用vb文本框编程后,在工程(.exe)中,文本框,不能输入汉字,但能输入英文和数字,请教是什么原因?
    我制作了一个文本编辑器,一个文本框控件(TxtContent),它将做为程序的输入窗口;另外还有四个按钮,分别是复制按钮(CmdCopy)、粘贴按钮(CmdPaste)、清除按钮(CmdClear)、退出程序按钮(CmdQuit);此外,还需要两个用来显示所选文本起始位置的标签一(LblStart)和显示所选文本长度的标签二(LblLength)。
1  文本框控件事件
   Private Sub TxtContent_MouseUp(Button As Integer, Shift As Integer, X As  Single, Y As Single)  
LblStart.Caption = "起始位置:" & TxtContent.SelStart
LblLength.Caption = "文本长度:" & TxtContent.SelLength
End Sub
2、复制按钮的点击事件: 

Private Sub CmdCopy_Click()
Clipboard.SetText TxtContent.SelText
End Sub 
3、粘贴按钮的点击事件: Private Sub CmdPaste_Click()
TxtContent.SelText = Clipboard.GetText
End Sub 
4、清空按钮的点击事件:

Private Sub CmdClear_Click()
TxtContent.Text = ""
End Sub 
5、退出程序按钮的点击事件:

Private Sub CmdQuit_Click()
End   End Sub 

回复列表 (共4个回复)

沙发

你使用的文本框是不是工具箱中的标准文本框?

板凳

Clipboard()你这个参数搞懂没?
功能提取或替换Windows系统剪贴板的文本内容。
语法Clipboard ( { string } )
参数string:string类型,可选项,指定要复制到系统剪贴板上的文本。如果剪贴板上已有内容的话,该文本将取代剪贴板的当前内容返回值 String。函数执行成功时,如果剪贴板上包含文本数据,那么函数返回剪贴板的当前内容;如果剪贴板上包含非文本数据(比如位图)或不包含任何数据,那么函数返回空字符串("")。如果string参数的值为NULL,Clipboard()函数返回NULL。用法无论是否指定string参数, Clipboard()都将返回剪贴板的当前内容。当指定string参数时,剪贴板的原有内容被string参数的值取代;省略string参数时,仅仅得到剪贴板的内容。

3 楼

先不说你问的问题,先说说别的。
1、书写格式。记得缩进,使程序有层次。
             程序过程间保留空行。
2、注释位置。应该写在程序行末,包括过程功能(写在过程名之后)。
             并尽量使其对齐。
3、两个标签纯属多余,可以声明两个窗体级变量来解决过程间数据传递问题。
4、按钮的标题尽量搞成汉语。
5、按钮的名称也在可能情况下搞成汉字。

再说你的问题,经测试不存在。

我使用的代码如下(控件有:窗体,四个按钮(默认),一个文本框(默认);代码基本都是你原来的。):

Dim 开始  As Integer, 长度 As Integer

Private Sub Form_Load()
    Command1.Caption = "复制"
    Command2.Caption = "粘贴"
    Command3.Caption = "清除"
    Command4.Caption = "退出"
End Sub

Private Sub Text1_MouseUp(Button As Integer, Shift As Integer, X As Single, Y As Single) '取得选中位置,备用
    开始 = Text1.SelStart
    长度 = Text1.SelLength
End Sub

Private Sub Command1_Click()            '把当前在文本框选中内容复制到剪贴板
    Clipboard.SetText Text1.SelText
End Sub
 
Private Sub Command2_Click()            '把剪贴板内容粘贴到文本框当前光标处
    Text1.SelText = Clipboard.GetText
End Sub

Private Sub Command3_Click()            '文本框清空
    Text1 = ""
End Sub

Private Sub Command4_Click()            '关闭
    End
End Sub

4 楼

谢谢大家!!受益匪浅

我来回复

您尚未登录,请登录后再回复。点此登录或注册