0

このプロジェクトでは、複数のレポートが生成されています。各レポートには無制限のサブレポートを含めることができるため、これは完全に再帰的なソリューションになります。これらのレポートを表示するにはC#ビューアを作成する必要があるため、現時点では、ツリービューの左側のパネルとテキストボックスのある右側のパネルを使用して基本的なプロトタイプを作成しました。

私の問題は、右側のテキストに左側のレポート(ツリービューから)の情報を正しく入力する方法がわからないことです。レポートの名前は重複している可能性があります。私はもともと、キーのレポート名とデータを値として辞書にすべての情報を追加していましたが、タイトルが重複しているため、これは機能しませんでした...

ツリーノードを正しいレポート情報に関連付けるために、レポートごとにある種の一意のランダムIDを使用したかったのですが、これを行うのが難しいようです。 http://msdn.microsoft.com/en-us/library/system.windows.forms.treenode.aspx

私が読んだことから、これを行うために使用できる何らかのプロパティがあるようには見えません...左側で選択したツリーノードに基づいて、右側のテキストボックスにレポートからの情報を入力させるにはどうすればよいですか?ツリーノードは現在再帰的に追加されており、前述したように重複する可能性があるため、ノードの名前は必ずしも一意ではありません。

ありがとう、私はそれ以上の質問に喜んで答えます。

4

1 に答える 1

3

プロパティを使用しTreeNode.Tagて、レポートへの参照を保存します。

TreeNode node = TreeView1.Nodes.Add(report.Name);
node.Tag = report;

次に、AfterSelectイベントハンドラーTagで、選択したノードのプロパティからレポートを取得します。

Report report = (Report)e.Node.Tag;
于 2012-08-20T15:36:19.393 に答える