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

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

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

C#のtreeView

[トピック内 3 記事 (1 - 3 表示)]  << 0 >>

■85367 / inTopicNo.1)  C#のtreeView
  
□投稿者/ sawada (1回)-(2017/10/15(Sun) 15:53:08)

分類:[.NET 全般] 

皆さん、こんにちは。

現在、C# 2015 ExpressでtreeViewを使ったプログラムの開発をしています。
そのtreeViewのノードを右クリックした時に、コンテキストメニューを表示しています。
その場合、あるノードを左クリックで選択した後、別ノードの行をマウスで右クリックするとそのノードが選択されてしまいます。
それはマウスダウンしている間だけその状態になり、マウスアップすると、前の選択状態に復帰します。
実際の使用では、コンテキストメニューを表示させるノードを右クリックすればいいんですが、手がすべってその上下のノードを右クリックしてしまうと、
一瞬チラチラが出て非常に目障りになります。

プログラムのどこかにtreeViewの余計なイベントなどがあるのかと思い、
下記の単純なドライブのみをtreeViewに表示させるプログラムを作成して試したところ同じ現象でした。

public Form1()
{
InitializeComponent();

treeView1.Nodes.Clear();
DriveInfo[] driveInfos = DriveInfo.GetDrives();

foreach (DriveInfo dinfo in driveInfos)
{
TreeNode node = this.treeView1.Nodes.Add(dinfo.Name);
DirectoryInfo subInfo = dinfo.RootDirectory;
if (subInfo.Exists) node.Nodes.Add("dummy");
}
}

これはtreeViewの仕様でしょうか、それともバグ?
よろしくお願いします。

引用返信 編集キー/
■85369 / inTopicNo.2)  Re[1]: C#のtreeView
□投稿者/ Azulean (879回)-(2017/10/15(Sun) 21:43:04)
No85367 (sawada さん) に返信
> これはtreeViewの仕様でしょうか、それともバグ?

一時的に選択色が右クリックしたノードに移るということであれば、エクスプローラーなどもそうですし、Windows の仕様ではないでしょうか。
引用返信 編集キー/
■85424 / inTopicNo.3)  Re[2]: C#のtreeView
□投稿者/ sawada (2回)-(2017/10/19(Thu) 17:24:11)
No85369 (Azulean さん) に返信

Azulean さん、返信ありがとうございます。

やっぱりそうなですかねぇ。
標準のtreeViewを使う限りはこれを避けては通れないでしょうね。

その後いろいろネットで検索したところ、解決出来そうなヒントが見つかりました。
それはtreeViewのownerdrawですべてを書いているものでした。
少なくとも私が書いた現象は起きませんでしたが、ただtreeViewの最下行以降を右クリックするとエラーが出ました。
その辺のところを解決すれば何とかなりそうだと考えています。




引用返信 編集キー/

このトピックをツリーで一括表示


トピック内ページ移動 / << 0 >>

このトピックに書きこむ