Я знаю, что свойство "HideSelection" отсутствует в CF.
Но мне все еще нужно разобраться с ситуацией, когда выбран элемент, который остается выделенным (серым), даже когда элемент управления теряет фокус.
Я пытался использовать этот код, но безуспешно. Я получаю исключение в методе GetFocus () и не знаю, что я делаю неправильно.
Любая помощь очень ценится!
[DllImport("User32.dll")]
static extern IntPtr GetFocus();
[DllImport("User32.dll")]
static extern Int32 GetWindowLong(IntPtr hwnd, Int32 integer1);
[DllImport("User32.dll")]
static extern IntPtr SetWindowLong(IntPtr hwnd, Int32 integer1, int integer2);
private bool doneOnce;
protected override void OnGotFocus(System.EventArgs e)
{
base.OnGotFocus(e);
if (this.itemsTreeView != null)
{
this.itemsTreeView.Focus();
if (doneOnce == false)
{
doneOnce = true;
IntPtr hWnd = GetFocus();
Int32 lS = GetWindowLong(hWnd, -16);
lS = lS | 0x20;
SetWindowLong(hWnd, -16, lS);
}
}
}
Я поместил этот код в мое представление «Код позади», которое содержит элемент управления TreeView.