在C#里TreeView怎么同步啊? 在form1添加一个treeview. 在form2里也

在C#里TreeView怎么同步啊? 在form1添加一个treeview. 在form2里也,第1张

在form1中写一个刷新tree的方法,在创建form2对象的时候将此方法通过委托传递到form2中,然后需要的时候就调用就是了,可以做到不用关闭form2的前提下实时更新form1窗体的TreeView数据,爪机回答的,不方便敲代码!,见谅

假定LV1 是BOM表,LV2 是我们复制(即选择)的对象,那么处理步骤如下:

1、通过listview属性可以获得LV2当前被选择节点的属性(text\tag\key,一般使用key,可以考虑3个值都传回来)

2、通过listview属性可以获得LV1的被选择节点的属性,同理

3、通过存储过程或者代码去做递归,将LV2的节点以及节点的所有子节点内容写入数据库

4、重新获取LV1当前节点在数据库里的属性,重新加载该节点下的内容,不需要刷新整个LV1

正好这个问题我前段时间刚研究过。就向楼上说的重新绑定就好。写一个方法,绑定数据到TREEVIEW以实现树结构。右键添加或删除的方法用SQL语句直接添加或删除数据。执行完SQL语句再重新调用写好的绑定数据的方法。这样用有个问题。就是因为重新绑定数据的关系,选定的节点会没有。。刚才还想到。要是你的树不是用数据库添加的,是手动创建的,那我的方法就没有用了。。下面给你我弄这个时候的一段代码。有说明。你对着看一下下。

//窗口载入

private void RelayMesFrm_Load(object sender, EventArgs e)

{

TreeViewBind() //绑定数据到Treeview的方法

t_tvw_relay.ExpandAll() //展开所有节点

}

//这个方法是根据我用到的情况写的。算上根节点一共才能三级节点,一级节点只有五个。所以新建了一个类型去保存。没有用到数据库,二级节点是从数据库中调出来的,根节点是手动创建的。

private void TreeViewBind() //绑定数据到Treeview的方法

{

TreeNode pNode = new TreeNode() //新建根节点

pNode.Text = "指令类型"

pNode.Name = "0"

t_tvw_relay.Nodes.Add(pNode)

foreach (var m in tn.dn) //绑定一级节点

{

TreeNode node = new TreeNode()

node.Text = m.Value.ToString()

node.Name = m.Key.ToString()

pNode.Nodes.Add(node)

foreach (var n in dalrelay.getInstance().GetList()) //绑定二级节点

{

if (n.code.ToString() == node.Name &&n.parentid == 0) //条件,二级节点和一级节点的关系

{

TreeNode nodesql = new TreeNode()//新建二级节点

nodesql.Text = n.name.ToString()

nodesql.Name = n.id.ToString()

node.Nodes.Add(nodesql)

}

}

}

}

然后比如加一个删除的代码:

//TreeView右键删除事件

private void t_cms_delete_Click(object sender, EventArgs e)

{

List<relay>pd = new List<relay>()//这是我新建的一个类。就是调用数据库中的数据用的。

pd = dal_model.Getlist().FindAll(m =>m.parentid.ToString() == model.te.Name)//查出当前选中节点的ID和数据库中该ID对应的数据

if (pd.Count != 0)

{

MessageBox.Show("该节点下有数据,不可删除!", "信息提示", MessageBoxButtons.OK, MessageBoxIcon.Information)

}

else

{

dal_model.delete_relay(model.te.Name.ToString())//删除方法

TreeViewBind() //注意这里,这就是解决你问题的地方了,重新调用方法就可以

t_tvw_relay.ExpandAll() //展开所有节点

}

}

添加节点也一样,就是这个意思。希望你是用数据库绑定Treeview的。要不我的方法就帮不到你了。。别人那转发过来的。。。


欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/bake/11563325.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2023-05-17
下一篇2023-05-17

发表评论

登录后才能评论

评论列表(0条)

    保存