winform--treeNode的小案例

---恢复内容开始---

类介绍:

TreeNode 类

treeNode  --树节点

在.NET中treeNode 可以用来做一个树模型来展示信息或者数据内容。

优点:逐级显示内容,层次分明

缺点:繁琐,需要重复性的进行实例

属性:

nodeName   --节点名称

selectedNode  --选中节点

Nodes  --节点集合

方法:

Add()  --添加节点

clear()  --删除节点

事件:

Afterselct  --节点发生改变

案例介绍:

输入根节点输入子节点自动生成

展示生成节点

输出生成的信息

 

代码:

private void btAdd_Click(object sender, EventArgs e)
{

//根节点数目
int zNode =Convert.ToInt32( this.tb1.Text);
//子节点数目
int xNode = Convert.ToInt32(this.tb2.Text);
for(int x=0;x<zNode;x++)
{
//在树组中添加根节点 名字为“父节点+x+1”
TreeNode tn = this.treeView1.Nodes.Add("父节点" + (x + 1).ToString());
outPut("添加父节点" + (x + 1).ToString());
for (int y = 0; y < xNode; y++)
{
//在根节点中添加子节点
TreeNode zTn=new TreeNode("子节点" +(y+1).ToString());
tn.Nodes.Add(zTn);
outPut("添加" + treeView1.SelectedNode + "的子节点" + (y + 1).ToString());
}
}
outPut("此次生成父节点共" + zNode + "个");
outPut("此次生成子节点共" + (zNode * xNode) + "个");
this.tb1.Clear();
this.tb2.Clear();
}
/// <summary>
/// 清除按钮
/// 功能:清除节点
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
private void btClear_Click(object sender, EventArgs e)
{
outPut("删除所有节点");
//清除所有节点
treeView1.Nodes.Clear();
}
/// <summary>
/// 删除按钮
/// 功能:删除节点
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
private void btDel_Click(object sender, EventArgs e)
{
outPut("删除所选节点:" + treeView1.SelectedNode.Text);
treeView1.Nodes.Remove(this.treeView1.SelectedNode);
}
public void outPut(string log)
{

//如果文本超过100行则自动清空
if (this.tbLog.GetLineFromCharIndex(tbLog.Text.Length) > 100)
{
tbLog.Text = "";
}
this.tbLog.AppendText(DateTime.Now.ToString("HH:mm:ss") + log + "\r\n");
}
/// <summary>
/// 更改选定后发生
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
private void treeView1_AfterSelect(object sender, TreeViewEventArgs e)
{
//输出所选节点的文本名
outPut("所选节点为:" + e.Node.Text);
}
/// <summary>
/// 重命名窗口---未完成
/// 控件的定位问题
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
private void 重命名ToolStripMenuItem_Click(object sender, EventArgs e)
{
//编辑选中节点
this.treeView1.SelectedNode.BeginEdit();
//outPut("修改节点名称为:" + treeView1.SelectedNode.Text);
}

/// <summary>
/// 鼠标双击进入编辑模式
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
private void treeView1_NodeMouseDoubleClick(object sender, TreeNodeMouseClickEventArgs e)
{
//节点编辑
this.treeView1.SelectedNode.BeginEdit();
}
/// <summary>
/// 将选中节点移除
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
private void 移除节点ToolStripMenuItem_Click(object sender, EventArgs e)
{
outPut("移除节点:" + this.treeView1.SelectedNode + "成功");
this.treeView1.SelectedNode.Remove();

}
/// <summary>
/// 打印.txt文件
/// 问题:文件路径不好控制
/// 问题2:文件名称不好控制
/// 思路:路径需要重新了解fileStream类
/// 思路2:文件名称可以使用时间
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
private void btPutLog_Click(object sender, EventArgs e)
{


//写入信息
Directory.CreateDirectory("D:/tStudyLog");
FileStream fs1 = new FileStream("D:/tStudyLog/Log.txt", FileMode.Create, FileAccess.Write);//创建写入文件
StreamWriter sw = new StreamWriter(fs1);
sw.WriteLine(this.tbLog.Text.Trim() + this.tbLog.Text);//开始写入值
sw.Close();
fs1.Close();
MessageBox.Show("日志文件已生成");

}

 

 

 

 

---恢复内容结束---

posted @ 2017-05-10 22:08  newRohLzy  阅读(485)  评论(0)    收藏  举报