c# 句柄 treeView 等操作

asdddddd1 2016-10-18 12:45:42

如图:现在有2个问题
1)、输入内容点击按钮,另外一个窗口的treeView内容自动找到
2)、可以对另外一个窗口的treeView内容进行添加和更改。
百度了半天,对于句柄的例子很少,对treeView的更少,特此前来求助!!!
...全文
245 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
  • 打赏
  • 举报
回复
引用 4 楼 u013300043 的回复:
这是2个窗体,我主要是想用 B窗体操作A窗体。
最简单的做法是将A窗体的treeview的Modifier属性设置为public,B窗体直接调用
Form1 fm1=new Form1();
fm.treeView1
asdddddd1 2016-10-19
  • 打赏
  • 举报
回复
这是2个窗体,我主要是想用 B窗体操作A窗体。
摇撼大地 2016-10-18
  • 打赏
  • 举报
回复
怎么句柄都出来了。winform不过是展示吧。展示只是对数据的表现。其实还是数据啊,不用考虑那么深吧。 右边是对数据的编辑。左边是对数据的展示。 然后搞定两个窗口之间的数据传递用什么方式。用web还是其他的什么。 搞清楚这个思路。程序其实也就出来了。
  • 打赏
  • 举报
回复
为什么要分开窗体?这样分开更麻烦,因为要用到迭代 给你点同窗体下的示例
        //*********查找节点**********
        private void btnSearch_Click(object sender, EventArgs e)
        {
            SearchNode(treeView1.Nodes,this.textBox1.Text);
        }
        /// <summary>
        /// 查找第一个符合节点,继续查找再思考思考吧
        /// </summary>
        /// <param name="nodes"></param>
        /// <param name="keyword"></param>
        void SearchNode(TreeNodeCollection nodes,string keyword)
		{
			foreach (TreeNode node in nodes)
            {
				if(node.Text==keyword)
				{
                    treeView1.Focus();
					treeView1.SelectedNode = node;
				}
			
                if (node.Nodes != null)
                {
                    SearchNode(node.Nodes,keyword);
                }
            }
			
		}

        //*********改变节点**********
        private void btnChange_Click(object sender, EventArgs e)
        {
            treeView1.SelectedNode.Text = this.textBox1.Text;
        }

        //*********添加子节点**********
        private void btnAdd_Click(object sender, EventArgs e)
        {
            treeView1.SelectedNode.Nodes.Add(this.textBox1.Text);
            treeView1.ExpandAll();
        }


        //*********失去焦点时显示颜色**********
        public TreeNode preSelectedNode = null;
        private void treeView1_Validating(object sender, CancelEventArgs e)
        {
            treeView1.SelectedNode.BackColor = Color.Blue;
            treeView1.SelectedNode.ForeColor = Color.Red;
            preSelectedNode = treeView1.SelectedNode;
        }

        private void treeView1_AfterSelect(object sender, TreeViewEventArgs e)
        {
            if (preSelectedNode != null)
            {
                preSelectedNode.BackColor = treeView1.BackColor;
                preSelectedNode.ForeColor = treeView1.ForeColor;
            }
        }
窗体传值/继续查找的问题继续钻研吧,这个得花时间琢磨
mjp1234airen4385 2016-10-18
  • 打赏
  • 举报
回复
传统的treeview在windows里是没有句柄的。因此,编写这个东西比较麻烦。

110,502

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧