根节点可选择,还有就是最小的子节点可以选择,其它的不可以选择。
节点内容数据库读入,然后把选择节点的id,text值传给母窗口。
实际运用在产品类别选择上(就是点select按钮,新弹出一窗口,treeview就在这新窗口中,然后选择相应的节点,点确认按钮把参数传到母窗口上)
这个怎么搞?我只能做到选中了,但不能传给母窗口,且这个选中可以选择任何节点,还做不到上面的。
期盼treeview高手出现帮我一下,tks

解决方案 »

  1.   


    private void tvwSource_NodeMouseClick(object sender, TreeNodeMouseClickEventArgs e)
            {
                //tvwSource.LabelEdit = true;
                //e.Node.BeginEdit();
                if (e.Node.Parent = null)
                {
                    //根節點
                }
                if (e.Node.Nodes.Count == 0)
                {
                    //最小的子节点
                }
                int id1 = e.Node.Index;
                int id2 = e.Node.Level;//不知道你要那個id
                string =e.Node.Text;
            }
      

  2.   


            private void button1_Click(object sender, EventArgs e)
            {
                if (OK != null)
                {
                    SelectedEventArgs se = new SelectedEventArgs();
                    OK(this, se);
                }
            }        public event NodeChangedEventHandler OK;
            private void treeView1_BeforeSelect(object sender, TreeViewCancelEventArgs e)
            {
                if (e.Node.Level != 0 && e.Node.Level != 3)
                {
                    e.Cancel = true;
                }
            }    public delegate void NodeChangedEventHandler(object sender, SelectedEventArgs e);
        public class SelectedEventArgs : EventArgs
        {
            // 你的参数
        }
      

  3.   

            private void button1_Click(object sender, EventArgs e)
            {
                //在你弹出窗口前,先注册这个事情,
                if (OK != null)
                {
                    SelectedEventArgs se = new SelectedEventArgs();
                    OK(this, se);
                }
            }        /// <summary>
            /// 这是你定义的事件,用于通知订阅方
            /// </summary>
            public event NodeChangedEventHandler OK;        /// <summary>
            /// 结点选中前取消点选择即可
            /// </summary>
            /// <param name="sender"></param>
            /// <param name="e"></param>
            private void treeView1_BeforeSelect(object sender, TreeViewCancelEventArgs e)
            {
                if (e.Node.Level != 0 && e.Node.Level != 3)
                {
                    e.Cancel = true;
                }
            }        public delegate void NodeChangedEventHandler(object sender, SelectedEventArgs e);
            public class SelectedEventArgs : EventArgs
            {
                // 你的参数
            }