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

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

ログ内検索
  • キーワードを複数指定する場合は 半角スペース で区切ってください。
  • 検索条件は、(AND)=[A かつ B] (OR)=[A または B] となっています。
  • [返信]をクリックすると返信ページへ移動します。
キーワード/ 検索条件 /
検索範囲/ 強調表示/ ON (自動リンクOFF)
結果表示件数/ 記事No検索/ ON
大文字と小文字を区別する

No.93706 の関連記事表示

<< 0 >>
■93706  Re[3]: チェックリストボックスのフォーカスについて
□投稿者/ KOZ -(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;
    }
    
    
記事No.93698 のレス /過去ログ162より / 関連記事表示
削除チェック/



<< 0 >>

パスワード/

- Child Tree -