Vb.net 如何选择文本而不是文本框

Vb.net 如何选择文本而不是文本框,vb.net,Vb.net,这看起来很简单,但我想不出一个方法来实现,而且在互联网上也没有一个解决方案可以让我相信使用这种语言是不可能的 我有一个简单的程序,你给它输入,点击一个按钮,它输出到一个文本框 我必须使它成为一个文本框,而不是一个标签,因为你不能突出显示标签中的文本,这是用户能够复制文本所必需的。但是,作为文本框,用户可以选择该框。我已将其设置为只读,因此他们无法输入,但如果单击该框,则闪烁的文本光标仍然存在,并且看起来非常糟糕。我也尝试过将Enabled设置为False,但是文本无法突出显示 不能选择文本框本身

这看起来很简单,但我想不出一个方法来实现,而且在互联网上也没有一个解决方案可以让我相信使用这种语言是不可能的

我有一个简单的程序,你给它输入,点击一个按钮,它输出到一个文本框

我必须使它成为一个文本框,而不是一个标签,因为你不能突出显示标签中的文本,这是用户能够复制文本所必需的。但是,作为文本框,用户可以选择该框。我已将其设置为只读,因此他们无法输入,但如果单击该框,则闪烁的文本光标仍然存在,并且看起来非常糟糕。我也尝试过将Enabled设置为False,但是文本无法突出显示

不能选择文本框本身,只能选择文本框内的文本


我该怎么做呢?

p/Invoke是我所知道的唯一方法

<System.Runtime.InteropServices.DllImport("user32.dll")> _
Private Shared Function HideCaret(hWnd As IntPtr) As Boolean
End Function

Private Sub TextBox1_GotFocus(sender As Object, e As EventArgs) Handles TextBox1.GotFocus
    HideCaret(TextBox1.Handle)
End Sub
以下是有关user32.dll HideCaret函数的文档:

啊,这更有道理,我当时想。。。那不是VB.netYeah,在我意识到你在找VB之前,我不得不从手边的一个C项目中删除它。希望转换能对你起作用。你可能需要在控件的焦点事件中调用它,我不记得它是否在更改控件之间保持不变。是的,我在想把它们放在哪里有点困难。它警告我函数不返回值,我知道它不应该返回值,但我不知道在我的代码中把Public Sub放在哪里。我用另一种方式处理了这个问题,我想我会与大家分享。我有一个文本框和一个可以复制到剪贴板的小按钮。这样,用户就不必关注文本框,选择文本,然后右键单击并复制或使用键盘快捷键。。。我知道你可以使用一些jscript来选择焦点上的所有文本。。。但只需点击按钮,这更容易。