vb.net winform で以下に示すコードを使用すると、キュー バナー/透かしが表示され、期待どおりに動作します (Win7 Pro 32 ビット VS2008 & 64 ビット VS2010)。ただし、vb.net ユーザー コントロールで同じスタイルのコードを使用すると、透かしは表示されません。手がかりを得た人はいますか?
数時間後...これはPEBKACのようです。テストアプリで動作します。ユーザーコントロール付き。設計時に作成されたものも、実行時に読み込まれたものも、まだメイン アプリでは機能しません。けれど。まだ困惑しています。まだ手がかりを探しています。
' Call from form / usercontrol load event handler.
Userhint.WatermarkSet(textbox1, "Some arbitrary text.")
' Noddy library class.
Friend Class Userhint
<DllImport("user32.dll", SetLastError:=True, CharSet:=CharSet.Auto)>_
Private Shared Function SendMessage(ByVal hWnd As HandleRef, _
ByVal Msg As UInteger, _
ByVal wParam As IntPtr, _
ByVal lParam As String) As IntPtr
End Function
Public Shared Sub WatermarkSet(ByVal ctl As Control, _
byval hintText as string)
const EM_SETCUEBANNER as int32 = &h1501
dim retainOnFocus As IntPtr = new IntPtr(1)
SendMessage(New HandleRef(ctl, ctl.Handle), _
EM_SETCUEBANNER, _
retainOnFocus, _
hintText)
End sub
End Class