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
不知道怎么插入图 就放个超链接吧 --------------------编程问答--------------------
但是我想让左右两边对应的东西在同一行显示,你看看图哈 比我说的清楚
[img=http://my.csdn.net/my/album/detail/1292803][/img] --------------------编程问答--------------------
建议你把右边的RichTextbox改成Treeview,绑定左边的时候把右边Treeview的信息也绑定进去 --------------------编程问答--------------------
我是新手,正在山寨这个软件来练习下、、、这个绑定要怎么弄啊(新手,勿拍砖) --------------------编程问答-------------------- 你左边的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)--------------------编程问答-------------------- 如果你的树上面没有把节点的主键值给绑定上去,那么你就把你xml节点路径给绑定上去,否则你是无法快速定位的,一般情况下,我们会给每个xml节点添加一个Key属性,这个属性用来记录这个节点的关键字,这个关键字在整个xml中不能重复。之后我们会把关键字赋予节点的key属性,在点击事件中获取这个key,并通过这个key去找到对应的节点,就能找到对应的信息了。
{
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,数据库的用途还是非常有用的。
补充:.NET技术 , C#