课程名称 C#程序设计
实验名称 实验二
壹、第一题
一、实验题目
创建项目,完成“课程信息添加及显示”的功能,程序运行如下图所示:
二、实验要求
具体要求:
(1) 按照图示排列相应的控件,控件名称自定义,其中左侧为TreeView控件,用来显示课程信息;
(2) 当单击【显示选中的课程】,弹出对话框,显示所选课程;单击【删除】按钮,将所选课程删除;
(3) 单击【添加新课程至所选专业下】,将文本框中的内容添加到相应的专业下;
(4) 注意:只能将内容添加到专业下,不能添加到课程下。
所需控件及其属性:
1个TreeView(属性Nodes中添加节点);3个Button;1个Text
三、实验代码以及执行结果
1、Form1.cs:
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;
namespace 第一题
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}
private void addNewNode_Click(object sender, EventArgs e) //添加新课程至所选专业下
{
string newNodeName = this.newNodeName.Text;
System.Windows.Forms.TreeNode newNode = new System.Windows.Forms.TreeNode(newNodeName);
if (treeView.SelectedNode.Level == 2) //如果当前被选中的节点在第二层 也就是某某专业
{
treeView.SelectedNode.Nodes.Add(newNode); //往该节点下添加用户新输入的节点
}
}
private void showSelected_Click(object sender, EventArgs e) //展示所选课程
{
treeView.Focus();
if(treeView.SelectedNode.Level == 3) //如果当前被选中的节点在第三层 也就是某某课程
{
MessageBox.Show("当前所选课程为:" + treeView.SelectedNode.Text);
}
}
private void Form1_Load(object sender, EventArgs e)
{
//默认初始化时展开所有节点
for (int i = treeView.GetNodeCount(false) - 1; i > -1; i--)
{
treeView.SelectedNode = treeView.Nodes[i];
treeView.SelectedNode.ExpandAll();
}
}
private void deleteSelected_Click(object sender, EventArgs e) //删除所选课程
{
treeView.SelectedNode.Remove();
}
}
}
2、执行结果:
四、实验总结
通过这次实验,我掌握了TreeView控件的基本使用,可以通过调用treeView.SelectedNode.Level 直接获取当前treeview中被选中的节点的所在层数,不需要自己再去将底层的逻辑实现。
使用treeView.SelectedNode.Nodes.Add(newNode);和treeView.SelectedNode.Remove();可以直接对节点进行添加和删除操作,treeView.SelectedNode.ExpandAll();可以展开被选中的节点,是的窗口在初始化时直接将所有节点均展开,就省去了自己一个一个点击节点的操作。