0

私はC#の初心者です。私のプロジェクトでは、TreeView コントロール内に xml ファイルを作成しました。xml ファイルが大きい場合、TreeViewコントロールはスクロール バーでデータを表示しています。これに加えて、ユーザーがノードをダブルクリックするたびに、選択したノードの横にこのようなパネルを表示しています..

ここに画像の説明を入力

TreeView Control をスクロールすると:

ここに画像の説明を入力

私の質問は、ユーザーがコントロールをスクロールしてもパネルが選択したノードと一緒に移動するように、コントロールにpanelアタッチする方法です。treeViewTreeView

4

1 に答える 1

2

TreeViewにはScrollイベントがないため、実行するのは困難です。ノードは展開したり折りたたんだりして、ノードの位置と可視性を変更する可能性があるため、とにかく信頼性はありません。バックアップ計画は、タイマーを使用することです。これはうまくいきました:

    private void timer1_Tick(object sender, EventArgs e) {
        var node = treeView1.SelectedNode;
        if (node == null || !node.IsVisible) panel1.Visible = false;
        else {
            panel1.Visible = true;
            var nodepos = treeView1.PointToScreen(node.Bounds.Location);
            var panelpos = panel1.Parent.PointToClient(nodepos);
            panel1.Top = panelpos.Y;
        }
    }
于 2012-10-26T17:29:03.303 に答える