TreeView.BeforeLabelEdit 事件
定义
重要
一些信息与预发行产品相关,相应产品在发行之前可能会进行重大修改。 对于此处提供的信息,Microsoft 不作任何明示或暗示的担保。
在编辑树节点标签前发生。
public:
event System::Windows::Forms::NodeLabelEditEventHandler ^ BeforeLabelEdit;
public event System.Windows.Forms.NodeLabelEditEventHandler BeforeLabelEdit;
public event System.Windows.Forms.NodeLabelEditEventHandler? BeforeLabelEdit;
member this.BeforeLabelEdit : System.Windows.Forms.NodeLabelEditEventHandler
Public Custom Event BeforeLabelEdit As NodeLabelEditEventHandler
事件类型
示例
下面的代码示例演示如何使用 BeforeLabelEditAfterSelect 和 TopNode 成员。 若要运行此示例,请将以下代码粘贴到包含 TreeView
名为 的 TreeView1
控件的窗体中。
InitializeTreeView
在窗体的构造函数或 Load
方法中调用 方法。
private:
void InitializeTreeView()
{
// Construct the TreeView object.
this->TreeView1 = gcnew System::Windows::Forms::TreeView;
// Set dock, location, size name, and tab order
// values for the TreeView object.
TreeView1->Dock = System::Windows::Forms::DockStyle::Left;
TreeView1->Location = System::Drawing::Point( 0, 0 );
TreeView1->Name = "TreeView1";
TreeView1->Size = System::Drawing::Size( 152, 266 );
TreeView1->TabIndex = 1;
// Associate the event-handling methods with the
// BeforeLabeEdit and the AfterSelect events.
TreeView1->BeforeLabelEdit += gcnew NodeLabelEditEventHandler( this, &Form1::TreeView1_BeforeLabelEdit );
TreeView1->AfterSelect += gcnew TreeViewEventHandler( this, &Form1::TreeView1_AfterSelect );
// Set the LabelEdit property to true to allow the
// user to edit the TreeNode text.
this->TreeView1->LabelEdit = true;
// Declare and create objects needed to populate
// the TreeView.
array<String^>^files = {"bigPresentation.ppt","myFinances.xls","myResume.doc"};
;
String^ filePath = "c:\\myFiles";
System::Collections::ArrayList^ nodes = gcnew System::Collections::ArrayList;
// Create a node for each file, setting the Text property to the
// file's name and the Tag property to file's fully-qualified name.
System::Collections::IEnumerator^ myEnum = files->GetEnumerator();
while ( myEnum->MoveNext() )
{
String^ file = safe_cast<String^>(myEnum->Current);
TreeNode^ node = gcnew TreeNode( file );
node->Tag = String::Concat( filePath, "\\", file );
nodes->Add( node );
}
array<TreeNode^>^treeNodes = gcnew array<TreeNode^>(nodes->Count);
nodes->CopyTo( treeNodes );
// Create a new node named topNode and add the ArrayList of
// nodes to topNode.
TreeNode^ topNode = gcnew TreeNode( "myFiles",treeNodes );
topNode->Tag = filePath;
// Add topNode to the TreeView.
TreeView1->Nodes->Add( topNode );
// Add the TreeView to the form.
this->Controls->Add( TreeView1 );
}
void TreeView1_BeforeLabelEdit( Object^ /*sender*/, NodeLabelEditEventArgs^ e )
{
// Determine whether the user has selected the top node. If so,
// change the CancelEdit property to true to cancel the edit.
if ( e->Node == TreeView1->TopNode )
{
e->CancelEdit = true;
MessageBox::Show( "You are not allowed to edit the top node" );
}
}
private void InitializeTreeView()
{
// Construct the TreeView object.
this.TreeView1 = new System.Windows.Forms.TreeView();
// Set dock, location, size name, and tab order
// values for the TreeView object.
TreeView1.Dock = System.Windows.Forms.DockStyle.Left;
TreeView1.Location = new System.Drawing.Point(0, 0);
TreeView1.Name = "TreeView1";
TreeView1.Size = new System.Drawing.Size(152, 266);
TreeView1.TabIndex = 1;
// Associate the event-handling methods with the
// BeforeLabeEdit and the AfterSelect events.
TreeView1.BeforeLabelEdit +=
new NodeLabelEditEventHandler(TreeView1_BeforeLabelEdit);
TreeView1.AfterSelect +=
new TreeViewEventHandler(TreeView1_AfterSelect);
// Set the LabelEdit property to true to allow the
// user to edit the TreeNode text.
this.TreeView1.LabelEdit = true;
// Declare and create objects needed to populate
// the TreeView.
string[] files = new string[]{"bigPresentation.ppt",
"myFinances.xls", "myResume.doc"};;
string filePath = "c:\\myFiles";
System.Collections.ArrayList nodes =
new System.Collections.ArrayList();
// Create a node for each file, setting the Text property to the
// file's name and the Tag property to file's fully-qualified name.
foreach ( string file in files )
{
TreeNode node = new TreeNode(file);
node.Tag = filePath+"\\"+file;
nodes.Add(node);
}
TreeNode[] treeNodes = new TreeNode[nodes.Count];
nodes.CopyTo(treeNodes);
// Create a new node named topNode and add the ArrayList of
// nodes to topNode.
TreeNode topNode = new TreeNode("myFiles", treeNodes);
topNode.Tag = filePath;
// Add topNode to the TreeView.
TreeView1.Nodes.Add(topNode);
// Add the TreeView to the form.
this.Controls.Add(TreeView1);
}
private void TreeView1_BeforeLabelEdit(object sender,
NodeLabelEditEventArgs e)
{
// Determine whether the user has selected the top node. If so,
// change the CancelEdit property to true to cancel the edit.
if (e.Node == TreeView1.TopNode)
{
e.CancelEdit = true;
MessageBox.Show("You are not allowed to edit the top node");
}
}
Private Sub InitializeTreeView()
' Construct the TreeView object.
Me.TreeView1 = New System.Windows.Forms.TreeView
' Set dock, location, size name, and tab order
' values for the TreeView object.
With TreeView1
.Dock = System.Windows.Forms.DockStyle.Left
.Location = New System.Drawing.Point(0, 0)
.Name = "TreeView1"
.Size = New System.Drawing.Size(152, 266)
.TabIndex = 1
End With
' Set the LabelEdit property to true to allow the
' user to edit the TreeNode text.
Me.TreeView1.LabelEdit = True
' Declare and create objects needed to populate
' the TreeView.
Dim file, files(), filePath As String
files = New String() {"bigPresentation.ppt", "myFinances.xls", _
"myResume.doc"}
filePath = "c:\myFiles"
Dim nodes As New System.Collections.ArrayList
' Create a node for each file, setting the Text property to the
' file's name and the Tag property to file's fully-qualified name.
For Each file In files
Dim node As New TreeNode(file)
node.Tag = filePath & "\" & file
nodes.Add(node)
Next
' Create a new node named topNode and add the ArrayList of
' nodes to topNode.
Dim topNode As New TreeNode("myFiles", _
nodes.ToArray(GetType(TreeNode)))
topNode.Tag = filePath
' Add topNode to the TreeView.
TreeView1.Nodes.Add(topNode)
' Add the TreeView to the form.
Me.Controls.Add(TreeView1)
End Sub
Private Sub TreeView1_BeforeLabelEdit(ByVal sender As Object, _
ByVal e As NodeLabelEditEventArgs) Handles TreeView1.BeforeLabelEdit
' Determine whether the user has selected the top node. If so,
' change the CancelEdit property to true to cancel the edit.
If (e.Node Is TreeView1.TopNode) Then
e.CancelEdit = True
MessageBox.Show("You are not allowed to edit the top node")
End If
End Sub
private:
// Handle the After_Select event.
void TreeView1_AfterSelect( System::Object^ /*sender*/, System::Windows::Forms::TreeViewEventArgs^ e )
{
// Vary the response depending on which TreeViewAction
// triggered the event.
switch ( (e->Action) )
{
case TreeViewAction::ByKeyboard:
MessageBox::Show( "You like the keyboard!" );
break;
case TreeViewAction::ByMouse:
MessageBox::Show( "You like the mouse!" );
break;
}
}
// Handle the After_Select event.
private void TreeView1_AfterSelect(System.Object sender,
System.Windows.Forms.TreeViewEventArgs e)
{
// Vary the response depending on which TreeViewAction
// triggered the event.
switch((e.Action))
{
case TreeViewAction.ByKeyboard:
MessageBox.Show("You like the keyboard!");
break;
case TreeViewAction.ByMouse:
MessageBox.Show("You like the mouse!");
break;
}
}
' Handle the After_Select event.
Private Sub TreeView1_AfterSelect(ByVal sender As System.Object, _
ByVal e As System.Windows.Forms.TreeViewEventArgs) _
Handles TreeView1.AfterSelect
' Vary the response depending on which TreeViewAction
' triggered the event.
Select Case (e.Action)
Case TreeViewAction.ByKeyboard
MessageBox.Show("You like the keyboard!")
Case TreeViewAction.ByMouse
MessageBox.Show("You like the mouse!")
End Select
End Sub
注解
有关如何处理事件的详细信息,请参阅 处理和引发事件。