Если я использую код, показанный ниже, на vb.net winform, появляется баннер / водяной знак cue и он ведет себя так, как ожидалось (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