C# と VB.NET の質問掲示板

わんくま同盟

ASP.NET、C++/CLI、Java 何でもどうぞ

C# と VB.NET の入門サイト

■93706 / 3階層)  チェックリストボックスのフォーカスについて
□投稿者/ KOZ (80回)-(2020/01/17(Fri) 12:26:45)
No93705 (犬夜叉 さん) に返信
>>フォーカスを取得したら、別のコントロールに位置付けるようにすれば良いと思います。
> すみません、具体的にどうすればよろしいのでしょうか?

こんな感じでどうでしょう?

public Form1() {
    InitializeComponent();

    clbInput.Enter += (sender, e) => {
        prevControl?.Focus();
    };
    clbInput.MouseDown += (sender, e) => {
        var index = clbInput.IndexFromPoint(e.Location);
        if (index != -1) {
            clbInput.SetItemChecked(index, !clbInput.GetItemChecked(index));
        }
        var txt = prevControl as TextBox;
        if (txt != null) {
            var lst = new List<string>();
            foreach (var selectedItem in clbInput.CheckedItems) {
                lst.Add(selectedItem.ToString());
            }
            prevControl.Text = string.Join(",", lst.ToArray());
        }
    };
    foreach (var con in GetControls(this)) {
        con.Enter += (sender, e) => {
            prevControl = (Control)sender;
        };
    }
}

private Control prevControl;

private static List<Control> GetControls(Control con) {
    var lst = new List<Control>();
    lst.Add(con);
    if (con.HasChildren) {
        foreach (Control child in con.Controls) {
            lst.AddRange(GetControls(child));
        }
    }
    return lst;
}


編集キー/

前の記事(元になった記事) 次の記事(この記事の返信)
←Re[2]: チェックリストボックスのフォーカスについて /犬夜叉 →Re[4]: チェックリストボックスのフォーカスについて /犬夜叉
 
上記関連ツリー

チェックリストボックスのフォーカスについて / 犬夜叉 (20/01/15(Wed) 08:41) #93698
Re[1]: チェックリストボックスのフォーカスについて / 犬夜叉 (20/01/15(Wed) 10:16) #93699
Re[1]: チェックリストボックスのフォーカスについて / KOZ (20/01/15(Wed) 13:04) #93700
  └ Re[2]: チェックリストボックスのフォーカスについて / 犬夜叉 (20/01/17(Fri) 11:20) #93705
    └ チェックリストボックスのフォーカスについて / KOZ (20/01/17(Fri) 12:26) #93706 ←Now
      └ Re[4]: チェックリストボックスのフォーカスについて / 犬夜叉 (20/01/17(Fri) 16:32) #93707 解決済み

上記ツリーを一括表示 / 上記ツリーをトピック表示
 
上記の記事へ返信