البرمجة

شجرة ديناميكية في C# لإضافة وإزالة العقد

To create a dynamic tree in C# where users can add or remove nodes, you can use the TreeView control in Windows Forms or WPF. Here’s a basic example using Windows Forms:

First, add a TreeView control to your form:

csharp
using System; using System.Windows.Forms; namespace DynamicTreeExample { public partial class MainForm : Form { public MainForm() { InitializeComponent(); InitializeTreeView(); } private void InitializeTreeView() { treeView1.Nodes.Add("Root"); } private void addButton_Click(object sender, EventArgs e) { if (treeView1.SelectedNode != null) { treeView1.SelectedNode.Nodes.Add("New Node"); treeView1.SelectedNode.Expand(); } } private void removeButton_Click(object sender, EventArgs e) { if (treeView1.SelectedNode != null && treeView1.SelectedNode.Parent != null) { treeView1.SelectedNode.Remove(); } } } }

In this example, the InitializeTreeView method adds a root node to the TreeView. The addButton_Click event handler adds a new node as a child of the selected node (if any). The removeButton_Click event handler removes the selected node (if it’s not the root node).

You can enhance this example by adding more functionality, such as editing node names or changing the tree structure.

For a more advanced and customizable tree control, you might consider using third-party libraries like Telerik UI for WinForms or DevExpress WinForms controls. These libraries offer more features and customization options for tree controls.

المزيد من المعلومات

لإضافة مزيد من المعلومات، يمكنك تحسين الشجرة الديناميكية بإضافة ميزات إضافية، مثل تحرير أسماء العقد أو تغيير هيكل الشجرة. يمكنك أيضًا استخدام الأحداث المختلفة لتعزيز تفاعل المستخدم مع الشجرة، مثل تحديد العقد وتحريكه وتوسيعه وطيه.

هنا بعض الإضافات التي يمكنك القيام بها:

  1. تحرير أسماء العقد: يمكنك تحقيق هذه الوظيفة عن طريق النقر مرتين على العقد لتمكين تحرير اسمه. يمكنك استخدام حدث NodeMouseDoubleClick لتحقيق ذلك.

  2. تغيير هيكل الشجرة: يمكنك السماح للمستخدم بسحب وإسقاط العقد لتغيير ترتيبهم. يمكنك استخدام حدث ItemDrag للعقد المسحوب وحدث DragDrop للإسقاط.

  3. تحديد العقد: يمكنك استخدام حدث AfterSelect لتنفيذ إجراءات معينة عند تحديد عقد معين.

  4. توسيع وطي العقد: يمكنك استخدام حدث BeforeExpand و BeforeCollapse لتنفيذ إجراءات قبل توسيع أو طي عقد معين.

  5. البحث في الشجرة: يمكنك توفير مربع نص للبحث يقوم بتصفية العقد المطابقة فقط.

هذه الإضافات تجعل تفاعل المستخدم مع الشجرة أكثر تعقيدًا وفاعلية، ويمكنك تطويرها بمزيد من الخصائص والتعديلات حسب احتياجات تطبيقك المحدد.

زر الذهاب إلى الأعلى