一、TreeNode.Tag到底是什么意思
很久没做C#了。没记错的话, tag应该是一个object吧。 tag顾名思义标签。你写的这个XXXXX是一个对象。当成一个人来看的话,tag就是随身的口袋。这个口袋你可以放些东西(数据),可以随时拿来使用或者判断。这个数据可以是一个你写的false这个bool的标识量,也可以是其他任何数据对象,只要是从object继承下来的
二、TreeNode.Tag是什么意思,具体点!
在此网站中有详细解释http://msdn.microsoft.com/zh-cn/system.windows.forms.treenode.tag(VS.90).aspx如下:
Tag属性
.NET Framework类库
TreeNode..::.Tag属性
获取或设置包含树节点有关数据的对象。
命名空间: System.Windows.Forms
程序集: System.Windows.Forms(在 System.Windows.Forms.dll中)
语法
<BindableAttribute(True)> _
<TypeConverterAttribute(GetType(StringConverter))> _
Public Property Tag As Object
Get
Set[BindableAttribute(true)][TypeConverterAttribute(typeof(StringConverter))]public Object Tag{ get; set;}[BindableAttribute(true)]
[TypeConverterAttribute(typeof(StringConverter))]
public:
property Object^ Tag{
Object^ get();
void set(Object^ value);
}[<BindableAttribute(true)>]
[<TypeConverterAttribute(typeof(StringConverter))>]
member Tag: Object with get, set
属性值
类型:System..::.Object
Object,包含有关树节点的数据。默认为nullNothingnullptrnull引用(在 Visual Basic中为 Nothing)。
备注
任何 Object派生类型都可被指派给此属性。如果此属性是通过 Windows窗体设计器设置的,则只能指派文本。
示例
下面的代码示例创建一个要为其分配子树节点的根树节点。将 ArrayList中的每个
Customer
对象的一个子树节点以及分配给
Customer
对象的每个
Order
对象的一个子树节点添加到根树节点。将
Customer
对象分配给 Tag属性,并将表示
Customer
对象的树节点用 Orange文本显示。本示例要求已定义
Customer
和
Order
对象,Form上具有 TreeView控件,还要求有一个名为
customerArray
的 ArrayList,其中包含
Customer
对象。
Public Class Customer
Public CustomerOrders As ArrayList
Public CustomerName As String
Public Sub New(myName As String)
CustomerName= myName
CustomerOrders= New ArrayList()
End Sub'New
End Class'Customer
Public Class Order
Public OrderID As String
Public Sub New(myOrderID As String)
Me.OrderID= myOrderID
End Sub'New
End Class'Order
Public Sub AddRootNodes()
' Add a root node to assign the customer nodes to.
Dim rootNode As TreeNode
rootNode= New TreeNode()
rootNode.Text="CustomerList"
' Add a main root treenode.
myTreeView.Nodes.Add(rootNode)
' Add a root treenode for each Customer object in the ArrayList.
Dim myCustomer As Customer
For Each myCustomer In customerArray
' Add a child treenode for each Order object.
Dim i As Integer= 0
Dim myTreeNodeArray(4) As TreeNode
Dim myOrder As Order
For Each myOrder In myCustomer.CustomerOrders
myTreeNodeArray(i)= New TreeNode(myOrder.OrderID)
i+= 1
Next myOrder
Dim customerNode As New TreeNode(myCustomer.CustomerName, _
myTreeNodeArray)
' Display the customer names with and Orange font.
customerNode.ForeColor= Color.Orange
' Store the Customer object in the Tag property of the TreeNode.
customerNode.Tag= myCustomer
myTreeView.Nodes(0).Nodes.Add(customerNode)
Next myCustomer
End Sub
public class Customer{ public ArrayList CustomerOrders; public string CustomerName; public Customer(string myName){ CustomerName= myName; CustomerOrders= new ArrayList();}}public class Order{ public string OrderID; public Order(string myOrderID){ this.OrderID= myOrderID;}} public void AddRootNodes(){// Add a root node to assign the customer nodes to. TreeNode rootNode= new TreeNode(); rootNode.Text="CustomerList";// Add a main root treenode. myTreeView.Nodes.Add(rootNode);// Add a root treenode for each'Customer' object in the ArrayList. foreach(Customer myCustomer in customerArray){// Add a child treenode for each Order object. int i= 0; TreeNode[] myTreeNodeArray= new TreeNode[5]; foreach(Order myOrder in myCustomer.CustomerOrders){ myTreeNodeArray[i]= new TreeNode(myOrder.OrderID); i++;} TreeNode customerNode= new TreeNode(myCustomer.CustomerName, myTreeNodeArray);// Display the customer names with and Orange font. customerNode.ForeColor= Color.Orange;// Store the Customer object in the Tag property of the TreeNode. customerNode.Tag= myCustomer; myTreeView.Nodes[0].Nodes.Add(customerNode);}}
ref class Customer
{
public:
ArrayList^ CustomerOrders;
String^ CustomerName;
Customer( String^ myName)
{
CustomerName= myName;
CustomerOrders= gcnew ArrayList;
}
};
ref class Order
{
public:
String^ OrderID;
Order( String^ myOrderID)
{
this->OrderID= myOrderID;
}
};
void AddRootNodes()
{
// Add a root node to assign the customer nodes to.
TreeNode^ rootNode= gcnew TreeNode;
rootNode->Text="CustomerList";
// Add a main root treenode.
myTreeView->Nodes->Add( rootNode);
// Add a root treenode for each'Customer' object in the ArrayList.
IEnumerator^ myEnum= customerArray->GetEnumerator();
while( myEnum->MoveNext())
{
Customer^ myCustomer= safe_cast<Customer^>(myEnum->Current);
// Add a child treenode for each Order object.
int i= 0;
array<TreeNode^>^myTreeNodeArray= gcnew array<TreeNode^>(5);
IEnumerator^ myEnum= myCustomer->CustomerOrders->GetEnumerator();
while( myEnum->MoveNext())
{
Order^ myOrder= safe_cast<Order^>(myEnum->Current);
myTreeNodeArray[ i ]= gcnew TreeNode( myOrder->OrderID);
i++;
}
TreeNode^ customerNode= gcnew TreeNode( myCustomer->CustomerName,myTreeNodeArray);
// Display the customer names with and Orange font.
customerNode->ForeColor= Color::Orange;
// Store the Customer Object* in the Tag property of the TreeNode.
customerNode->Tag= myCustomer;
myTreeView->Nodes[ 0 ]->Nodes->Add( customerNode);
}
}
版本信息
.NET Framework
受以下版本支持:4、3.5、3.0、2.0、1.1、1.0
.NET Framework Client Profile
受以下版本支持:4、3.5 SP1
平台
Windows 7, Windows Vista SP1或更高版本, Windows XP SP3, Windows XP SP2 x64 Edition, Windows Server 2008(不支持服务器核心), Windows Server 2008 R2(支持 SP1或更高版本的服务器核心), Windows Server 2003 SP2
.NET Framework并不是对每个平台的所有版本都提供支持。有关支持的版本的列表,请参见.NET Framework系统要求。
请参见
参考
TreeNode类
System.Windows.Forms命名空间
Object
三、C# TreeNode的使用
首先更正:TreeNode他不是控件,他是一个对象名(节点对象),treeView1才是控件。
TreeNode newNode1= treeView1.Nodes.Add("电话簿");
这句话的意思是,定义一个TreeNode节点类型对象,名称为newNode1,并为他赋值,赋值的内容是:treeView1控件的根节点Nodes,因为本来treeView1控件没有根节点,所以应该先添加根节点Nodes.Add("电话簿")根节点显示的内容就是电话簿。
newNode1.Nodes.Add(sdr[1].ToString());
这个意思是,在根节点newNode1处添加子节点,显示内容是sdr[1].ToString()。
Nodes不是根的意思,是“儿子”的意思。treeView1的Nodes,“儿子”可不就是根节点呗!newNode1.Nodes,这个是儿子的儿子,那就是二级节点了。
文章分享到这里,希望我们关于TreeNode和C# TreeNode的使用的内容能够给您带来一些新的认识和思考。如果您还有其他问题,欢迎继续探索我们的网站或者与我们交流,我们将尽力为您提供满意的答案。