1

リストボックスがあり、コードで項目を選択しようとしています。あるアイテムが強調表示される場合があります。つまり、背景が青く着色されていますが、別のアイテムの周りに四角い青いボックスがあります (ボックスの中空の輪郭だけを強調表示するわけではありません)。

1 つが「強調表示」され、もう 1 つが「選択」されていると言うのは正しいですか。正しく識別されていますか?

これは起こっているはずです...それは、これら2つのことが同期していないということですか?

ありがとうコーディ

4

2 に答える 2

1

この問題と戦っただけです。リストボックスのスクロールビューアはリストボックスで選択された項目も自動スクロールしますが、最初の項目にフォーカスがあり、キーボード操作を説明すると、選択された項目ではなくリストの最初の項目で操作されます。

私たちにとって修正は

            this.MyListBox.UpdateLayout(); 
            this.MyListBox.Focus();
            this.MyListBox.SelectedItem = MyObject;
            this.MyListBox.ScrollIntoView(this.MyListBox.SelectedItem);

アクションの順序は非常に重要なようです。

これは ListBox 内部スクロールビューアを使用していました。

于 2010-05-24T09:35:24.987 に答える
0

背景が青色で強調表示されている項目が SelectedItem です。青い四角形の項目は、現在フォーカスがあると考えられている項目です。

通常、選択された項目は通常、同じ要素にフォーカスを移動するマウス クリックで変更されるため、フォーカスの四角形と選択された塗りつぶしは一緒に検出されます。ただし、たとえば、ListBox がまだフォーカスを持っている間にコードが選択された項目を変更する可能性があります。その場合、選択されたハイライトは新しく選択された項目を移動しますが、フォーカス四角形はそのまま残ります。(ペンダティックに注意してください。私は、実際に内部でどのように機能するかではなく、ユーザーに見えるものを説明しています)。

何が起こっているかについての洞察については、ListBox のスタイルとテンプレートのドキュメントの ListBoxItem スタイルを参照してください。

于 2010-04-20T12:41:40.337 に答える