Имя пользователя:
Пароль:  
Помощь | Регистрация | Забыли пароль?  

Показать сообщение отдельно

Новый участник


Сообщения: 16
Благодарности: 0

Профиль | Отправить PM | Цитировать


First of all i want tot thank you for your help, but similar code i already wrote by myself. Following code is work well:
Код: Выделить весь код
        private void buttonSave_Click(object sender, EventArgs e)
        {
            TraverseTreeView(treeView1);
            string temp = String.Empty;
            foreach (string str in name)
                temp += str + Environment.NewLine;
            MessageBox.Show(temp);
            name.Clear();
        }
        List<string> name = new List<string>();
        private void TraverseTreeView(TreeView tview)
        {
            TreeNode temp = new TreeNode();
            for (int k = 0; k < tview.Nodes.Count; k++)
            {
                temp = tview.Nodes[k];
                name.Add(k+"\t"+temp.Text+"\tnull");
                for (int i = 0; i < temp.Nodes.Count; i++)
                    visitChildNodes(temp.Nodes[i]);
            } 
        }
        private void visitChildNodes(TreeNode node)
        {
            name.Add(node.Text);
            for (int j = 0; j < node.Nodes.Count; j++)
                visitChildNodes(node.Nodes[j]);
        }
But there is still several things that I don't know how to realize:
1. Do not use global variable (List<string> name) for collecting result;
2. Correctly collect data perhaps in DataTable, in format "1 | Aaron | null".
Please chech code below, and fix mistaks:
Код: Выделить весь код
private void buttonSave_Click(object sender, EventArgs e)
        {
            DataTable dt = new DataTable();
            dt = TraverseTreeView(treeView1);
            string temp = String.Empty;
            foreach (string str in dt)
                temp += str + Environment.NewLine;
            MessageBox.Show(temp);
            dt.Clear();
        }
        //List<string> name = new List<string>();
        private DataTable TraverseTreeView(TreeView tview)
        {
            DataTable dt = new DataTable();
            dt.Columns.Add("id", typeof(int));
            dt.Columns.Add("Name");
            dt.Columns.Add("ParentId", typeof(int));
            TreeNode temp = new TreeNode();
            for (int k = 0; k < tview.Nodes.Count; k++)
            {
                temp = tview.Nodes[k];
                dt.Rows.Add(k, temp.Text, null);
                //name.Add(temp.Text);
                for (int i = 0; i < temp.Nodes.Counst; i++)
                    dt.Rows.Add(i, visitChildNodes(temp.Nodes[i]).Text, i - 1);
            }
            return dt;
        }
        private DataTable visitChildNodes(TreeNode node)
        {
            //name.Add(node.Text);
            DataTable dt = new DataTable();
            dt.Columns.Add("id", typeof(int));
            dt.Columns.Add("Name");
            dt.Columns.Add("ParentId", typeof(int));
            for(int j = 0; j < node.Nodes.Count; j++)
                dt.Rows.Add(j, visitChildNodes(node.Nodes[j]).Text, j - 1);
            return dt;
        }

Отправлено: 00:12, 12-02-2014 | #15