2016-07-14 93 views
0

我已經看到了很多在網絡上的答案,說明一個標籤的文本無法選擇/的方式複製一個TextBox的內容就可以了, 但什麼是根本原因一個Label的文本不能複製?標籤和文本框之間的(技術)區別是什麼?

Windows本身可以在光標位置找到文本,所以爲什麼WinForm不能控制Label

+1

我沒有具體的參考資料,但我希望這是一個設計問題,而不是技術問題。 – cdkMoose

+0

_Windows本身是什麼意思可以在光標position_下找到文本? –

+0

我確信我記得一個API調用(幾年前我看過VB6時看到),它返回光標結束的文本(即詞)。 – radders

回答

7

爲了讓用戶選擇或複製控件的文本,控件必須允許您通過單擊或選項卡來設置控件的焦點。

A Label不允許這種設計。

標籤控件通常用於爲控件提供描述性文本。例如,您可以使用Label爲TextBox控件添加描述性文本,以通知用戶有關控件中預期的數據類型。

因此,雖然標籤和文本框都從System.Windows.Control繼承,它們是不同的東西,旨在用於不同的目的。就像桔子和蘋果都是水果一樣,但不同。

然而,如果您要創建一個應用程序,並希望有一些看起來像標籤,但允許用戶選擇(但不能編輯)文本,那麼你可以使用同一個以下屬性中設置:

  • Backcolor = Control
  • ReadOnly = true
  • BorderStyle = none

如下圖所示...

A textbox that looks like a label

或者,如果你有一個應用程序,並想從文本的東西就像一個標籤,你可以使用Win32 API函數GetWindowText,如果你知道包含文本的窗口的句柄。在Win32環境中,「窗口」意味着屏幕上任何不同的東西,而不僅僅是可以用鼠標拖動的窗口。 WinForms是所有這一切的抽象。

至於獲取鼠標光標下的窗口句柄,請參閱this question

+1

.....我不知道標籤是不可選的...... #MindBlown ....順便說一句,你真的用一臺筆記本電腦抵擋了一頭大象嗎?婆羅門,這不是你如何使用筆記本電腦.... –

+0

@AnthonyRussell - 你知道,我真的做到了!幾年前在非洲贊比亞度假時,我們被警告說有一些男性青少年在我們住的地方附近發熱。一天晚上,有人從樹後走過。我大聲嚷嚷着,把我的筆記本電腦揮了揮手,這就成功了。那些東西是biiiiiiig! –

+1

什麼牌子的筆記本電腦? –

相關問題