7

ツリービューで画像リストを使ってみたところ、ツリーノードをクリックすると画像のインデックスが変わります。なぜそれが起こっているのか分かりません。誰でも私を助けることができますか?

前もって感謝します

4

5 に答える 5

13

ツリー ノードに ImageIndex と SelectedImageIndex の両方を設定する必要があります。

于 2009-11-01T07:29:31.107 に答える
10

'SelectedImageIndexの目的は、特定のノードの'ImageIndex'によって設定されたものとは異なる画像を選択時に表示できるようにすることです。これら2つの一貫性を保つには、同じ値に設定する必要があります。これは、設計時に、またはニーズに応じてプログラムで実行できます。

たとえば、画像が変更されない場合は、新しいノードがTreeViewに追加されたときに画像を同時に設定するのと同じくらい簡単です。

int myCurrentImageIndex = 0;
TreeNode node = myTreeView.Nodes.Add("new node!");
node.ImageIndex = node.SelectedImageIndex = myCurrentImageIndex;

ただし、最初の作成後に何らかの理由でImageIndex値を変更した場合(ある種のユーザーアクションへの応答など)、SelectedImageIndexも変更する必要があります。そうしないと、一貫性がなくなります。

int myNewImageIndex = 1;
node.ImageIndex = node.SelectedImageIndex = myNewImageIndex;

(「AfterSelect」イベントのイベントハンドラーで同じに設定するだけでは不十分であることに注意してください。ImageIndexが変更されるコード内の任意の場所で実行する必要があります。)

于 2009-11-24T22:43:58.443 に答える
1

コンストラクターで直接行うことができます:

TreeNode node = new TreeNode("My treenode", 1, 1);
于 2013-01-08T16:37:59.267 に答える