2014-02-27 30 views
0

This answer演示如何在文本框中使用cuebanner。標籤的內容適用於每個文本框。對該答案的評論指出,您可以使用附加屬性來增加樣式的可重用性幷包含指向C#代碼的鏈接。如何在WPF/VB.NET中使用不同文本的不同文本框中使用此樣式

我可以寫/讀C#,但不幸的是我不明白代碼的作用。我也做了一些搜索附加屬性,但我真的不知道如何改變顯示的文本,使其可重用。

任何人都可以給我一個例子,我如何在VB.NET中做到這一點,或鏈接我解釋它是如何完成的一些網站?

+0

作爲您的其他問題說,你似乎是一個*水印'TextBox' * ......有這些創造的許多方面,你可以找到他們在後什麼[水印/ WPF提示文本TextBox](http://stackoverflow.com/questions/833943/watermark-hint-text-textbox-in-wpf)問題...我相信你會發現至少有一些,是比你提出的解決方案更好的解決方案(來自鏈接問題)。如果你想在VB中使用它,那麼就把它轉換成一個在線VB到C#轉換器,就像[Developer Fusion]一樣(http://www.developerfusion.com/tools/convert/csharp-to-vb/)。 – Sheridan

+0

謝謝你的鏈接。如果我成功或者不成功,我肯定會嘗試一下併發布更新。 – Krowi

+0

不能失敗......首先嚐試最多票數的答案。我使用了類似的方法,效果很好。我可以像這樣使用它:'' – Sheridan

回答

0

這會給你水印你的文本框控件的文本:

進口:

Imports System.Runtime.InteropServices 

全局聲明在你的主類:在你的主類

Private Const EM_SETCUEBANNER As Integer = &H1501 

<DllImport("user32.dll", CharSet:=CharSet.Auto)> _ 
Private Shared Function SendMessage(ByVal hWnd As IntPtr, ByVal msg As Integer, ByVal wParam As Integer, <MarshalAs(UnmanagedType.LPWStr)> ByVal lParam As String) As Int32 
End Function 

功能:

Private Sub SetCueText(ByVal control As Control, ByVal text As String) 
SendMessage(control.Handle, EM_SETCUEBANNER, 0, text) 
End Sub 

使用(一般在Form_Load事件):

SetCueText(TextBox1, "blah") 
SetCueText(TextBox2, "blahblah") 

這是你的意思?

希望這有助於:)

相關問題