0

私はwin32用のソフトウェアを.NETに移行中であり、現在DelphiPrismのTreeViewコントロールを使用しています。これまでのところ、TreeViewに親ノードと子ノードを追加することができます。ただし、DelphiPrismTreeViewのAddchildObject関数に代わるものがあるかどうかを知りたいです。そうでない場合は、どのように行いますか?

これに関するオンライン情報はほとんどないようです。

4

1 に答える 1

1

この質問は、ここにいる他のプログラマーには答えられないかもしれないと私は信じています。これは、DelphiPrismを実行しているプログラマーにとって重要な質問だと思います。そこで、別のStackOverflowの質問で答えを見つけたので、質問を削除するのではなく、自分で答えることにしました。しかし、私の質問と彼らの質問は異なりますが、同じ答えが必要です。

ツリービューの使用方法を示し、ツリービューノードでオブジェクトを保存および取得できるようにするために、すばやく簡単なデルファイプリズムサンプルを作成しました。

これが私のTreeviewの例です

namespace TreeViewExample;

interface

uses
  System.Drawing,
  System.Collections,
  System.Collections.Generic,
  System.Windows.Forms,
  System.ComponentModel;

type
  /// <summary>
  /// Summary description for MainForm.
  /// </summary>
  MainForm = partial class(System.Windows.Forms.Form)
  private
    method MainForm_Load(sender: System.Object; e: System.EventArgs);
    method treeView1_Click(sender: System.Object; e: System.EventArgs);
  protected
    method Dispose(disposing: Boolean); override;
  public
    constructor;
  end;

  theclass = class
  thestr:String;
  public
  constructor;
  end;

implementation

{$REGION Construction and Disposition}
constructor MainForm;
begin
  //
  // Required for Windows Form Designer support
  //
  InitializeComponent();

  //
  // TODO: Add any constructor code after InitializeComponent call
  //
end;

method MainForm.Dispose(disposing: Boolean);
begin
  if disposing then begin
    if assigned(components) then
      components.Dispose();

    //
    // TODO: Add custom disposition code here
    //
  end;
  inherited Dispose(disposing);
end;
{$ENDREGION}

constructor theclass;
begin
  thestr:='Testing Treeview.';
end;

method MainForm.MainForm_Load(sender: System.Object; e: System.EventArgs);
var topnode:treenode;
    theObject:theclass;
begin
  theObject:=new theclass;
  treeview1.BeginUpdate;
  topnode:=treeview1.Nodes.Add('node1');
  topnode.Nodes.Add('no data node');
  topnode.Nodes.Add('data node').Tag := theObject;
  topnode.Expand;
  treeview1.EndUpdate;
end;

method MainForm.treeView1_Click(sender: System.Object; e: System.EventArgs);
begin
  if treeview1.SelectedNode.Text='data node' then
    MessageBox.Show(theClass(Treeview1.SelectedNode.Tag).thestr);
end;

end.

これが質問へのリンクです。

C#でツリービューを使用する場合は、テキストフィールドを配列に保存します(そして配列からデータをプルします)

于 2011-09-01T19:15:00.840 に答える