2014-07-14 35 views
0

这看起来很简单,但我找不到一种方法来实现它,并且我无法找到互联网上任何地方的解决方案导致我相信使用这种语言是不可能的。如何能够选择文本,但不是文本框

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

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

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

我该怎么做这样的事情?

回答

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

+0

啊,让更多的意义上说,我很喜欢“......这不是VB.net” –

+0

呀,还得从它刷卡一个C#项目,在我意识到你正在寻找VB之前,我很方便。希望转换能为你工作。 –

+0

您可能需要在控件的焦点事件中调用它,我不记得它是否在更改控件之间粘连。 –