コントロールノードでツリーノードのテキストの外側をクリックするたびに、ノードのクリックイベントが発生しますが、ノードは強調表示されません。なぜこれが起こっているのか分かりません。C#でのTreeNode選択の問題
ノードをクリックしたときにノードを選択したいのですが、ノードをクリックするとテキストが表示されます。空白ではない - ノードの幅がTreenode全体に及ぶと仮定しますか?私はdock.fillモードでそれが何かを持っている場合Treeviewを持って - 私はすべてを試みたが、正しく動作するように取得することはできません。
多分、誰かが何が起こっているか知っているでしょう。
更新: if (e.Location.IsEmpty) {
がbetter-動作するようですが、まだ何もテキストベースのノードの幅は、それが思わ全体のツリービューを横切って延び明らかに存在しない空白の場所でノードを選択?
私がしたいことを達成するためのより良い方法はありますか?それとも最善の方法ですか?
更新:以前のアイデアはうまく機能していません。私はそれをしたと思ったが、それはしなかった。
新しい問題:ツリービューから切り替えると、問題の一部がフォーカスに関連していると思います。
UPDATE-
私はbeforeSelectイベントでノードを選択し、マウスの右クリックを無効にすることについて思い付いただけのコードでは、
if (MouseButtons == System.Windows.Forms.MouseButtons.Right)
{
e.Cancel = true;
}
ですが、それは任意のヘルプはappreciated-の提案に従っているワーク・ませんでした詳細については、唯一の答えです。
私が覚えている限り、選択されていることをチェックして、nullの場合はイベントハンドラから返すことができます。 – Elalfer
[c# - NodeMouseClickの問題点](http://stackoverflow.com/questions/1190751/c-problem -nodemouseclickと一緒に) - 私はこれの答えがあなたの問題を解決すると思います。 – adrianbanks
NodeMouseClickイベントは、* very * earlyを起動し、コードに意味のある何かを行うチャンスを与えます。組み込まれているものの1つは「テキストがクリックされたときにのみ意味があります」です。ほとんどの場合、AfterSelectイベントが最後に発生します。 –