Я знаю, что свойство «HideSelection» отсутствует в CF. Но мне все же нужно обрабатывать ситуацию, когда элемент выбран, что он остается выбранным (серый), даже когда управление теряет фокус.CF TreeView - Выбранный элемент, когда управление теряет фокус
Я пробовал использовать этот мир кода, но безуспешно. Я получаю исключение в методе 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.
thanx alot! Работает как шарм. Ты мужчина :) – no9