私はwin32用のソフトウェアを.NETに移行中であり、現在DelphiPrismのTreeViewコントロールを使用しています。これまでのところ、TreeViewに親ノードと子ノードを追加することができます。ただし、DelphiPrismTreeViewのAddchildObject関数に代わるものがあるかどうかを知りたいです。そうでない場合は、どのように行いますか?
これに関するオンライン情報はほとんどないようです。
私はwin32用のソフトウェアを.NETに移行中であり、現在DelphiPrismのTreeViewコントロールを使用しています。これまでのところ、TreeViewに親ノードと子ノードを追加することができます。ただし、DelphiPrismTreeViewのAddchildObject関数に代わるものがあるかどうかを知りたいです。そうでない場合は、どのように行いますか?
これに関するオンライン情報はほとんどないようです。
この質問は、ここにいる他のプログラマーには答えられないかもしれないと私は信じています。これは、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.
これが質問へのリンクです。