14

通常の .NET Windows フォームツリービュー コントロールがあります。ノードは次のようにセットアップされます。

グループ

- -子

- -子

折りたたまれたグループ ノードをダブルクリックすると、(ご想像のとおり) 展開されて NodeMouseDoubleClick イベントが発生し、選択したノードがグループ ノードでない場合にコードが何かを実行します。

グループがツリービューの下部にある場合に問題が発生するため、グループ ノードをダブルクリックすると、ツリービューを垂直方向に展開して子ノードをビューに合わせる必要があります。このような場合、グループ ノードをダブルクリックすると、それが展開されてツリー ビューが調整されるまでに、マウス カーソルが子ノード上にあり (すべてを押し上げる必要がありました)、NodeMouseDoubleClick が子ノードを認識します。が選択されているため、非常に奇妙な動作が発生します。

どうすればこれを回避できますか? NodeMouseDoubleClick または..を使用しないでください。

フィードバック レポートProblem with TreeView DoubleClick event after expand/collapses cause change of scrollにも説明があったようです。

4

2 に答える 2

16

NodeDoubleClick問題ありませんが、 を使用する代わりに を使用してe.Nodeくださいthis.treeView1.SelectedNode

于 2009-01-23T15:30:41.797 に答える
7

TreeNode をダブルクリックすることは、TreeView によってノードを折りたたんだり展開したりするために既に "使用されている" マウス ジェスチャです Microsoft は、Apple ほど UI 標準を推進していません。独自のカスタム動作で TreeView を修正することを奨励しているためです。これは、一般的なコントロールから一般的な動作を期待するエンド ユーザーに誤解を与える可能性があります。

インターフェイス設計の 8 つのゴールデン ルールの最初の 1つ、 Ben ShneidermanによるDesigning the User Interfaceから:

  1. 一貫性を保つよう努めます。

同様の状況では、一貫した一連のアクションが必要です。プロンプト、メニュー、およびヘルプ画面では、同じ用語を使用する必要があります。一貫したコマンドを全体で使用する必要があります。

簡単に言えば、NodeMouseDoubleClick を使用するべきではないかもしれません。

于 2009-01-25T13:40:03.570 に答える