0

kmltreeviewにフォルダを作成するための次のコードがあります。

            var folder = ge1.createFolder("Mobiles");
            folder.setName("Mobiles");
            kmlTreeView1.ParseKmlObject(folder);

何らかの理由でこのコードを使用すると、NodeMouseClick関数が「Mobiles」ノードを「e」引数として起動します。

コードスニペット

コードをコメントアウトすると、イベントは発生しません。さらにフォルダーを追加すると、それらもイベントを発生させます。

(私は何もクリックしていません-開始して実行させるにはF5だけです。)

何かご意見は?

4

1 に答える 1

1

NodeMouseClickイベントは、トライステートチェックメカニズムの一部としてノードがKmlTreeViewに追加されたときに発生します。このシミュレートされたクリックは、KmlContainerをチェックするか、部分的にチェックするか、チェックを外すかをチェックするために使用されます。この状態が設定されると、NodeMouseClickイベントが発生しますが、指定されたボタンはありません。

したがって、クリックを開始するためにどのボタンが押されたかを確認することで、この自動チェックを簡単に排除するためのテストを行うことができます。

  var folder = ge1.createFolder("Mobiles");
  folder.setName("Mobiles");
  kmlTreeView1.ParseKmlObject(folder);
  kmlTreeView1.NodeMouseClick += (o, e) =>
  {
      if (e.Button == MouseButtons.None)
      {
        // no actual mouse click...
        return;
      }

      // handle user interactions
  };
于 2012-12-07T02:13:14.640 に答える