我想知道如何为表单中的两个不同文本框创建"提示"?
这是我的代码:
Imports System.Runtime.InteropServices
Form_Load事件:
SendMessage(Me.txtAmount.Handle, &H1501, 0, "$X.XX")
SendMessage(Me.txtMemo.Handle, &H1501, 0, "Enter a transaction memo.")
Run Code Online (Sandbox Code Playgroud)
共享功能:
<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
Run Code Online (Sandbox Code Playgroud)
此代码仅适用于txtAmount文本框.知道如何让两个工作在一个表单?
谢谢.
小智 6
创建一个类:
Public Class MultilineTextBoxWaterMark
Inherits TextBox
Private Const WM_PAINT = &HF
Protected Overrides Sub WndProc(ByRef m As System.Windows.Forms.Message)
MyBase.WndProc(m)
If m.Msg = WM_PAINT Then
If Text.Length <> 0 Or Me.Focused Then
Return
End If
Using g As Graphics = Me.CreateGraphics, format As New StringFormat()
format.LineAlignment = StringAlignment.Near
g.DrawString("Enter a transaction memo.", Me.Font, Brushes.LightGray, Me.ClientRectangle, format)
End Using
End If
End Sub
End Class
Run Code Online (Sandbox Code Playgroud)
然后在你的主要形式:
Private MltLnTxtBxWrMrk As New MultilineTextBoxWaterMark
Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
MltLnTxtBxWrMrk.Location = New Point(100, 30) 'whatever you want
MltLnTxtBxWrMrk.Width = 300 'whatever you want
MltLnTxtBxWrMrk.Height = 100 'whatever you want
MltLnTxtBxWrMrk.BorderStyle = BorderStyle.Fixed3D 'whatever you want
MltLnTxtBxWrMrk.Multiline = True
Me.Controls.Add(MltLnTxtBxWrMrk)
End Sub
Run Code Online (Sandbox Code Playgroud)
我认为它有效.谢谢
| 归档时间: |
|
| 查看次数: |
5135 次 |
| 最近记录: |