WindowsForm TextBox 자리 차지 문자 실현
2370 단어 TextBox자리 표시 자Placeholder
SendMessage 함수 구현
TextBox 를 계승 하 는 ZhmTextBox 입력 상자 컨트롤 을 만 들 고 Placeholder 속성 을 추가 하여 Placeholder 의 set 방법 에서 EM 을 보 냅 니 다.SETCUEBANNER 소식
public class ZhmTextBox: TextBox
{
private const int EM_SETCUEBANNER = 0x1501;
[DllImport("user32.dll", CharSet = CharSet.Auto)]
private static extern Int32 SendMessage(IntPtr hWnd, int msg, int wParam, [MarshalAs(UnmanagedType.LPWStr)]string lParam);
private string placeholder = string.Empty;
public string Placeholder
{
get { return placeholder; }
set
{
placeholder = value;
SendMessage(Handle, EM_SETCUEBANNER, 0, Placeholder);
}
}
}
항목 을 다시 컴 파일 하면 도구 상자 에서 ZhmTextBox 컨트롤 을 찾 은 다음 ZhmTextBox 의 Place holder 속성 을 설정 할 수 있 습 니 다.TextBox 를 통한 GotFocus 와 LostFocus 사건
마이크로소프트 가 왜 TextBox 의 이 두 사건 을 Browsable 을 false 로 표시 해 야 하 는 지 모 르 겠 지만 VS 속성 패 널 에서 이 두 사건 을 찾 을 수 없어 수 동 으로 삭제 할 수 밖 에 없습니다.
private void Form1_Load(object sender, EventArgs e)
{
textBox1.Text = " ...";
textBox1.LostFocus += TextBox1_LostFocus;
textBox1.GotFocus += TextBox1_GotFocus;
}
private void TextBox1_GotFocus(object sender, EventArgs e)
{
textBox1.Text = "";
}
private void TextBox1_LostFocus(object sender, EventArgs e)
{
if (string.IsNullOrWhiteSpace(textBox1.Text))
textBox1.Text = " ...";
}
모든 컨트롤 이 이렇게 훑 히 는 것 이 귀 찮 으 면 TextBox 류 를 확장 하여 하위 구조 에 이벤트 처 리 를 넣 고 호출 할 수 있 습 니 다.이렇게 사용 할 때 도 편리 합 니 다.구체 적 인 코드 는 쓰 지 않 고 관심 있 는 것 은 스스로 실현 할 수 있다.
이 글 은 윈도 우즈 Form 에서 TextBox 자리 차지 문자 Placeholder 알림 을 실현 하 는 것 에 관 한 글 입 니 다.더 많은 TextBox 자리 차지 문자 Placeholder 알림 내용 은 우리 의 이전 글 을 검색 하거나 아래 의 관련 글 을 계속 찾 아 보 세 요.앞으로 도 많은 응원 부 탁 드 리 겠 습 니 다!
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
asp.net 에서 DropDownlList 의 값 을 통 해 TextBox 가 작성 할 수 있 는 실현 코드 를 제어 합 니 다.효과: aspx: aspx.cs:...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.