VB复制文本框文本问题

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了VB复制文本框文本问题相关的知识,希望对你有一定的参考价值。

Private Sub Command2_Click()
Clipboard.SetText Text2.Text
MsgBox "复制成功!!", 26, "提示!"
End Sub

复制是可以啦!但是只能在程序内部粘贴,不能粘贴到桌面的记事本

你是说什么意思? 你是在记事本里面按 CTRL + V还是想用程序点击command2在记事本里面粘贴呀?

前者的话,就是按CTRL + V 就粘贴上了呗。这这是windows一个辅助程序而已。不可能不通用的。

后者的话,那就比较麻烦了、 首先用findwindow 这个API找到记事本的句柄。然后findwindowex找到记事本上文本框的句柄。 然后sendmessage、、参数设置为settext 、然后点击command2就会出现在第三方程序上面了。

如果你对于我说的不知所云的话,你百度 API 。
参考技术A 你忘了先清空剪贴板了!
Private Sub Command1_Click()
Clipboard.Clear
Clipboard.SetText Text1.Text
MsgBox "复制成功!!", 26, "提示!"
End Sub本回答被提问者采纳
参考技术B Private Sub Command1_Click()
Clipboard.Clear
Clipboard.SetText Text1.Text
MsgBox "复制成功!!", 26, "提示!"
End Sub
参考技术C 没有问题。可以粘贴到记事本追问

为什我不能,只能粘贴在程序里的文本框

追答

经实测可以
测试环境:XP, VB6.0+SP6

参考技术D 经测试,正常,运行后打开记事本,Ctrl+V能粘贴

允许文本框vb中的负数和正数

我有一个问题,我需要在文本框中的按键事件中,只需输入caracter( - )和数字

例如:-540612或64346

文本框允许负数和正数

答案
Private Sub txtMonRenta_KeyPress(sender As Object, e As KeyPressEventArgs) Handles txtMonRenta.KeyPress
    If Not IsNumeric(e.KeyChar) AndAlso System.Convert.ToByte(e.KeyChar) <> 8 AndAlso Convert.ToByte(e.KeyChar) <> 45 Then
        e.Handled = True
    End If
End Sub

这项工作很好!!

另一答案

这类问题有很多“答案”,经过审查后,我找到了一种简单直接的方法。这是我打电话的子项:

  Private Sub txtNumOnly_KeyPress(sender As Object, e As KeyPressEventArgs, txtBox As TextBox)

  'If not backspace or acceptable char flush key
  If (Not e.KeyChar = ChrW(Keys.Back) And ("0123456789.-").IndexOf(e.KeyChar) = -1) Then
    e.Handled = True
  End If

  'Only one decimal allowed
  If (e.KeyChar = "." And txtBox.Text.ToCharArray().Count(Function(c) c = ".") > 0) Then
    e.Handled = True
  End If

  'Deal with selected text too.
  If txtBox.SelectionLength > 0 Then
    If txtBox.Text.Length <> txtBox.SelectionLength Then
      If e.KeyChar = "-" Then 
        e.Handled = True
        Exit Sub 'avoid other checks, we're done
      End If 'e.KeyChar = "-"
    Else ''txtBox.Text.Length <> txtBox.SelectionLength
      Exit Sub 'allow it, all text is replaced
    End If 'txtBox.Text.Length <> txtBox.SelectionLength
  End If 'txtBox.SelectionLength > 0

  'Only one minus allowed and must be first char
  If (e.KeyChar = "-" And txtBox.Text.ToCharArray().Count(Function(c) c = "-") > 0) Then
    e.Handled = True
  End If

  If e.KeyChar = "-" And txtBox.Text.Length > 0 Then
    e.Handled = True
  End If

End Sub

现在在文本框的KeyPress事件处理程序中:

  Private Sub txtDaysReview_KeyPress(sender As Object, e As KeyPressEventArgs) Handles txtDaysReview.KeyPress
    txtNumOnly_KeyPress(sender, e, txtDaysReview) '<==Adjust the txtDaysReview to reference the TextBox being checked
  End Sub

以上是关于VB复制文本框文本问题的主要内容,如果未能解决你的问题,请参考以下文章

vb 获取文本框内容

c#如何使一个文本框变为不可编辑?但是又可以复制里面的数据?

VB禁止文本框输入

vb怎么把结果输出到文本框里?

vb 知道窗口句柄以及怎样获得窗口上文本框和按钮句柄并传递信息

vb中怎样使记事本中的内容显示在文本框中