如何选择文本而不是文本框

时间:2014-07-14 03:34:16

标签: vb.net

这看起来很简单,但我无法想办法解决这个问题,互联网上任何地方都找不到解决办法让我相信不可能使用这种语言

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

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

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

我该怎么做?

1 个答案:

答案 0 :(得分:2)

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函数的文档: http://msdn.microsoft.com/en-us/library/windows/desktop/ms648403(v=vs.85).aspx