请问一下:c# winfrom treeview的刷新,总是闪烁,并且无法操作。这个问题你解决了吗
展开全部
参考下这个
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 Form1_Load(object sender, EventArgs e)
{
treeView1.Nodes.Clear();
TreeNode tem = new TreeNode("根节点");
treeView1.Nodes.Add(tem);
}
private void AddChildNode()
{
//首先判断是否选定组件中的位置
if (treeView1.SelectedNode == null)
{
MessageBox.Show("请选择一个节点", "提示信息", MessageBoxButtons.OK,
MessageBoxIcon.Information);
}
else
{
if (textBox1.Text != "")
{
//创建一个节点对象并初始化
TreeNode tmp;
tmp = new TreeNode(textBox1. Text);
//在TreeView组件中加入子节点
treeView1.SelectedNode.Nodes.Add(tmp);
treeView1.SelectedNode = tmp;
treeView1.ExpandAll();
}
else
{
MessageBox.Show("TextBox组件必须填入节点名称!","提示信息",
MessageBoxButtons.OK,MessageBoxIcon.Information);
return;
}
}
}
private void AddParent()
{
try
{
//首先判断是否选定组件中的节点位置
if (treeView1.SelectedNode == null)
{
MessageBox.Show("请选择一个节点", "提示信息",
MessageBoxButtons.OK, MessageBoxIcon.Information);
}
else
{
if (textBox1.Text != "")
{
//创建一个节点对象并初始化
TreeNode tmp;
tmp = new TreeNode(textBox1.Text);
//在TreeView组件中加入兄弟节点
treeView1.SelectedNode.Parent.Nodes.Add(tmp);
treeView1.ExpandAll();
}
else
{
MessageBox.Show("TextBox组件必须填入节点名称!", "提示信息",
MessageBoxButtons.OK, MessageBoxIcon.Information);
return;
}
}
}
catch
{
TreeNode tem = new TreeNode("根节点");
treeView1.Nodes.Add(tem);
}
}
private void treeView1_MouseDown(object sender, MouseEventArgs e)
{
if (e.Button == MouseButtons.Right)
//获取鼠标当前像素位置为快捷菜单弹出位置
contextMenuStrip1.Show(this, new Point(e.X, e.Y));
}
private void button1_Click(object sender, EventArgs e)
{
//展开下级节点
treeView1.SelectedNode.Expand();
}
private void button2_Click(object sender, EventArgs e)
{
//定位根节点
treeView1.SelectedNode=treeView1.Nodes[0];
//展开组件中的所有节点
treeView1.SelectedNode.ExpandAll();
}
private void button3_Click(object sender, EventArgs e)
{
//定位根节点
treeView1.SelectedNode=treeView1.Nodes[0];
//关闭组件中所有节点
treeView1.SelectedNode.Collapse();
}
private void contextMenuStrip1_Opening(object sender, CancelEventArgs e)
{
}
private void treeView1_AfterSelect(object sender, TreeViewEventArgs e)
{
}
private void 加入子节点ToolStripMenuItem_Click(object sender, EventArgs e)
{
AddChildNode();
}
private void 加入兄弟节点ToolStripMenuItem_Click(object sender, EventArgs e)
{
AddParent();
}
private void ToolStripMenuItem3_Click(object sender, EventArgs e)
{
//判断选中的节点是否存在下级节点
if (treeView1.SelectedNode.Nodes.Count == 0)
//删除节点
treeView1.SelectedNode.Remove();
else
MessageBox.Show("请先删除此节点中的子节点!","提示信息",
MessageBoxButtons.OK,MessageBoxIcon.Information);
}
}
}
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询