Delphi Prism:替换TreeView AddchildObject函数

时间:2011-09-01 16:08:46

标签: .net treeview replace delphi-prism addchild

我正在将win32软件迁移到.NET,目前正在使用Delphi Prism中的TreeView控件。到目前为止,我能够将父节点和子节点添加到TreeView。但是,我想知道Delphi Prism TreeView是否有替换AddchildObject函数。如果没有,你会怎么做?

似乎网上的信息很少。

1 个答案:

答案 0 :(得分:1)

我相信这个问题可能无法得到这里的同事们的回答,我觉得这对于任何正在做Delphi Prism的程序员来说都是一个重要的问题。所以,我决定自己回答这个问题而不是删除它,因为我在另一个StackOverflow问题中找到了答案。但是,我的问题和他们的问题不同,但需要相同的答案。

我写了一个快速简单的delphi prism示例来展示如何使用treeview并能够在treeview节点中存储和检索对象。

这是我的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.

以下是问题的链接。

save text fields to an Array (and pull data from the Array) when using treeview in c#