如何在 ASP.NET VB 项目中获取控件的句柄?
How can I obtain a control's Handle in a ASP.NET VB project?
我想将 Cue/Watermarks 添加到我的 ASP:TextBox 控件以获得更好的用户体验,并且遇到了非常好的 CueProvider,它具有 this VB-调整遗憾的是我无法编译的版本。
我的class如下
#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
编译失败是在 New HandleRef(ctl, ctl.Handle)
上,第二个参数显然不是有效的 属性。
如何获取传入 UI 控件的 windows 句柄?
您找到的代码适用于 Windows 表单,但您正在开发 ASP.NET Web 表单应用程序。因此是不合适的。您无法在 ASP.NET.
中获得 window 句柄
我相信你想要的是一个占位符。
<input type="text" placeholder="First Name" />
或者如果您需要服务器控件,
<asp:TextBox runat="server" placeholder="First Name" />
我想将 Cue/Watermarks 添加到我的 ASP:TextBox 控件以获得更好的用户体验,并且遇到了非常好的 CueProvider,它具有 this VB-调整遗憾的是我无法编译的版本。
我的class如下
#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
编译失败是在 New HandleRef(ctl, ctl.Handle)
上,第二个参数显然不是有效的 属性。
如何获取传入 UI 控件的 windows 句柄?
您找到的代码适用于 Windows 表单,但您正在开发 ASP.NET Web 表单应用程序。因此是不合适的。您无法在 ASP.NET.
中获得 window 句柄我相信你想要的是一个占位符。
<input type="text" placeholder="First Name" />
或者如果您需要服务器控件,
<asp:TextBox runat="server" placeholder="First Name" />