当前位置:编程学习 > C#/ASP.NET >>

treeview节点定位

就像这样,左边是一个treeview控件右边是一个richtextbox。左边被展开节点内容在右边显示出来,他们在同一行。我的思路是得到treeview节点在控件中的坐标,让后往richtextbox中写的时候就写在其对应的坐标行,思路就是这样,方法不知道怎么写 --------------------编程问答-------------------- 图挂了 看不到 --------------------编程问答-------------------- 可以呀,MouseDown时有鼠标坐标,先treeView1.PointToScreen转为屏幕坐标,在this.PointToClient转为窗体坐标(这个窗体一定是richtext的parent,不一定是窗体,panel也可以的),然设置richedit的Location为this.PointToClient转后的坐标即可 --------------------编程问答-------------------- 不太明白你的意思,,
你可以得到选中的节点让后循环遍历子节点显示出来就可以了 --------------------编程问答-------------------- http://my.csdn.net/my/album/detail/1292803
不知道怎么插入图  就放个超链接吧 --------------------编程问答-------------------- http://my.csdn.net/my/album/detail/1292803
不知道怎么插入图  就放个超链接吧 --------------------编程问答--------------------
引用 3 楼  的回复:
不太明白你的意思,,
你可以得到选中的节点让后循环遍历子节点显示出来就可以了

但是我想让左右两边对应的东西在同一行显示,你看看图哈  比我说的清楚
[img=http://my.csdn.net/my/album/detail/1292803][/img] --------------------编程问答--------------------

建议你把右边的RichTextbox改成Treeview,绑定左边的时候把右边Treeview的信息也绑定进去 --------------------编程问答--------------------
引用 7 楼  的回复:
建议你把右边的RichTextbox改成Treeview,绑定左边的时候把右边Treeview的信息也绑定进去

我是新手,正在山寨这个软件来练习下、、、这个绑定要怎么弄啊(新手,勿拍砖) --------------------编程问答-------------------- 你左边的Treeview是怎么绑定的? --------------------编程问答--------------------
引用 9 楼  的回复:
你左边的Treeview是怎么绑定的?

左边我是直接读的xml文件
if (ofd.ShowDialog() == DialogResult.OK)
                {
                    File1 = ofd.FileName;
                    richTextBox1.Clear();
                    try
                    {
                        // SECTION 1. Create a DOM Document and load the XML data into it.
                        XmlDocument dom = new XmlDocument();
                        dom.Load(File1);

                        // SECTION 2. Initialize the TreeView control.
                        treeView1.Nodes.Clear();
                        treeView1.Nodes.Add(new TreeNode(dom.DocumentElement.Name));
                        TreeNode tNode = new TreeNode();
                        tNode = treeView1.Nodes[0];

                        // SECTION 3. Populate the TreeView with the DOM nodes.
                        AddNode(dom.DocumentElement, tNode);
                        treeView1.ExpandAll();
                        //treeView1.ExpandAll();
                    }
                    catch (XmlException xmlEx)
                    {
                        // MessageBox.Show(xmlEx.Message);
                        textBox1.Text = xmlEx.Message;
                    }

private void AddNode(XmlNode inXmlNode, TreeNode inTreeNode)
        {
            XmlNode xNode;
            TreeNode tNode;
            XmlNodeList nodeList;
            int i;

            // Loop through the XML nodes until the leaf is reached.
            // Add the nodes to the TreeView during the looping process.
            if (inXmlNode.HasChildNodes)
            {
                nodeList = inXmlNode.ChildNodes;
                for (i = 0; i <= nodeList.Count - 1; i++)
                {
                    xNode = inXmlNode.ChildNodes[i];
                    inTreeNode.Nodes.Add(new TreeNode(xNode.Name));
                    tNode = inTreeNode.Nodes[i];
                    AddNode(xNode, tNode);
                }
            }
            else
            {
                // Here you need to pull the data from the XmlNode based on the
                // type of node, whether attribute values are required, and so forth.
                inTreeNode.Text = (inXmlNode.OuterXml).Trim();
            }
        }
--------------------编程问答-------------------- 如果你的树上面没有把节点的主键值给绑定上去,那么你就把你xml节点路径给绑定上去,否则你是无法快速定位的,一般情况下,我们会给每个xml节点添加一个Key属性,这个属性用来记录这个节点的关键字,这个关键字在整个xml中不能重复。之后我们会把关键字赋予节点的key属性,在点击事件中获取这个key,并通过这个key去找到对应的节点,就能找到对应的信息了。
这个是一种很快速的定位方式,当然,这种方式不适用于动态节点(比如生产线实时数据)。但是针对保存后的数据,比如xml,数据库的用途还是非常有用的。
补充:.NET技术 ,  C#
CopyRight © 2012 站长网 编程知识问答 www.zzzyk.com All Rights Reserved
部份技术文章来自网络,