table 布局面板中的树视图并动态获取值 c#

Tree-views in table layout panel and get values dynamically c#

我在 table 布局面板中有多个树视图 - C# windows 应用程序。

每个单元格由 Treeview 或下拉列表或文本框组成。我可以获取文本框和下拉列表的值,但无法在 table 布局面板中获取多个 Treeview 的选定节点。

在我的代码下方。

        int rows;
        int column;

        rows = tableLayoutPanel1.RowCount;
        column = tableLayoutPanel1.ColumnCount;

       


        for (int i = 0; i < rows; i++)
        {
            for (int j = 0; j < column; j++)
            {
                Control value = tableLayoutPanel1.GetControlFromPosition(j, i);
                //here i got specified treeview but i can't get refernce. getting error
                string controlName = value.Controls.Owner.Name;
                //here i got error i am unable to get treeview selected text
                string seletedvalue = controlName.SelectedNode.Text;
                MessageBox.Show(controlName);
            }
        }

您正在获取控件,但没有检查它是什么类型的控件,也没有进行强制转换。所以它仍然是一个通用控件,而不是 TreeView。而且只有 TreeView 有节点。

您也可以简单地选择您想要的特定控件。

foreach ( TreeView tv in tableLayoutPanel1.Controls.OfType<TreeView>()) 
{     
    string seletedvalue = tv.SelectedNode.Text;
    MessageBox.Show(tv.Name + " " + seletedvalue);
}