c#Winforms中的分层树视图,带有大陆,国家,城市
Posted
技术标签:
【中文标题】c#Winforms中的分层树视图,带有大陆,国家,城市【英文标题】:hierarchical treeview in c# Winforms with continent, nation, city 【发布时间】:2020-01-03 11:42:08 【问题描述】:我有一个 SQL 表:
地区国家城市
欧洲奥地利维也纳
欧洲奥地利格拉茨
APA 澳大利亚悉尼
等等……等等……
基本上是地区、国家和城市。
我想构建一个分层树视图,例如:
-欧洲
--奥地利
---格拉茨
---维也纳
-APA
--澳大利亚
---悉尼
我使用 Datatable 从数据库中获取数据。
有人可以帮助我完成循环 FOR 和各种嵌套 if 来完成吗? 非常感谢提前
【问题讨论】:
【参考方案1】:尝试以下:
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
namespace WindowsFormsApplication51
public partial class Form1 : Form
public Form1()
InitializeComponent();
try
DataTable dt = new DataTable();
dt.Columns.Add("REGION", typeof(string));
dt.Columns.Add("NATION", typeof(string));
dt.Columns.Add("CITY", typeof(string));
dt.Rows.Add(new object[] "Europe", "Austria", "Wien" );
dt.Rows.Add(new object[] "Europe", "Austria", "Graz" );
dt.Rows.Add(new object[] "APA", "Australia", "Sidney" );
foreach (var region in dt.AsEnumerable().GroupBy(x => x.Field<string>("REGION")))
TreeNode regionNode = new TreeNode(region.Key);
treeView1.Nodes.Add(regionNode);
foreach (var nation in region.GroupBy(x => x.Field<string>("NATION")))
TreeNode nationNode = new TreeNode(nation.Key);
regionNode.Nodes.Add(nationNode);
foreach (string city in nation.Select(x => x.Field<string>("CITY")))
TreeNode cityNode = new TreeNode(city);
nationNode.Nodes.Add(cityNode);
catch (Exception ex)
Console.WriteLine(ex.Message);
treeView1.ExpandAll();
【讨论】:
以上是关于c#Winforms中的分层树视图,带有大陆,国家,城市的主要内容,如果未能解决你的问题,请参考以下文章