如何获得控件';ASP.NET VB项目中的句柄?

如何获得控件';ASP.NET VB项目中的句柄?,asp.net,vb.net,webforms,Asp.net,Vb.net,Webforms,我想为我的ASP:TextBox控件添加提示/水印,以获得更好的用户体验,并且遇到了非常好的提示提供程序,它有VB调整的版本,遗憾的是我无法编译 我的课程如下 #Region "Imports" Imports System.Runtime.InteropServices #End Region Public Class Watermark <DllImport("user32.dll", SetLastError:=True, CharSet:=CharSet.Auto)> P

我想为我的ASP:TextBox控件添加提示/水印,以获得更好的用户体验,并且遇到了非常好的提示提供程序,它有VB调整的版本,遗憾的是我无法编译

我的课程如下

#Region "Imports"
Imports System.Runtime.InteropServices
#End Region

Public Class Watermark

<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 [Set](ByVal ctl As Control, ByVal hintText As String)

    Const EM_SETCUEBANNER As Int32 = &H1501

    Dim retainOnFocus As IntPtr = New IntPtr(1)
    Dim msg As Int32 = EM_SETCUEBANNER

    SendMessage(New HandleRef(ctl, ctl.Handle), msg, retainOnFocus, hintText)

End Sub

End Class
#地区“进口”
导入System.Runtime.InteropServices
#末端区域
公共类水印
专用共享函数SendMessage(ByVal hWnd作为HandlerRef,
ByVal Msg作为UInteger,
ByVal wParam作为IntPtr,
ByVal lParam(作为字符串)作为IntPtr
端函数
公共共享子集合(ByVal ctl作为控件,ByVal hintText作为字符串)
常量EM_SETCUEBANNER为Int32=&H1501
Dim RETAINOFOCUS As IntPtr=新IntPtr(1)
Dim msg As Int32=EM_SETCUEBANNER
SendMessage(新HandleRef(ctl,ctl.Handle),msg,retainOnFocus,hintText)
端接头
末级
编译失败发生在
新HandleRef(ctl,ctl.Handle)
上,第二个参数显然不是有效的属性


如何获取传入UI控件的windows句柄?

您找到的代码适用于windows窗体,但您正在开发ASP.NET Web窗体应用程序。因此,这是不恰当的。无法在ASP.NET中获取窗口句柄

我相信你想要的是一个占位符


太好了,这是我应该做的。非常感谢,谢谢!