Chỉ cần cho đầy đủ, tôi cần một người chức năng như vậy để sử dụng với một DevExpress WinForms TextEdit
control.
Họ đã làm provid e a ShowCaret
và phương pháp HideCaret
, rất tiếc là chúng được bảo vệ. Vì vậy, tôi đã tạo ra một lớp dẫn xuất cung cấp chức năng. Đây là mã đầy đủ:
public class MyTextEdit : TextEdit
{
private bool _wantHideCaret;
public void DoHideCaret()
{
HideCaret();
_wantHideCaret = true;
}
public void DoShowCaret()
{
ShowCaret();
_wantHideCaret = false;
}
protected override void OnGotFocus(EventArgs e)
{
base.OnGotFocus(e);
if (_wantHideCaret)
{
HideCaret();
}
}
}
Để sử dụng mã này, chỉ cần sử dụng lớp có nguồn gốc thay vì TextEdit
lớp gốc trong mã của bạn và gọi DoHideCaret()
bất cứ nơi nào, ví dụ trong hàm tạo của biểu mẫu có chứa điều khiển chỉnh sửa văn bản.
Có thể điều này hữu ích cho người nào đó trong tương lai.
Nguồn
2013-05-13 05:03:39
Đừng quên 'using System.Runtime.InteropServices;' và 'ShowCaret (IntPtr hWnd);' – Sam