C#使用TreeView加载系统应用菜单代码
class TreeAppMenu
{
private DataSet ds;
public bool LoadMenu(ref TreeView treeview)
{
string connString = GlobalInfo.CurrentDB;
using (DbConnection conn = new System.Data.OleDb.OleDbConnection(connString))
{
DbCommand cmd = conn.CreateCommand();
cmd.CommandText = "SELECT * FROM S_MENU";
cmd.CommandType = CommandType.Text;
DbDataAdapter da = new OleDbDataAdapter();
da.SelectCommand = cmd;
ds = new DataSet();
try
{
da.Fill(ds, "S_MENU");
if (ds.Tables["S_MENU"].Rows.Count >= 1)
{
string menuno = ds.Tables["S_MENU"].Rows[0]["MENU_NO"].ToString();
string menuname = ds.Tables["S_MENU"].Rows[0]["MENU_NM"].ToString();
DataView dv = new DataView();
dv.Table = ds.Tables["S_MENU"];
dv.RowFilter = "UP_MENU_NO = 'TOP'";
dv.Sort = "SORT_NO";
foreach (DataRowView drv in dv)
{
TreeNode node = new TreeNode();
node.Name = drv["MENU_NO"].ToString();
node.Text = drv["MENU_NM"].ToString();
node.ImageIndex = 0;
node.SelectedImageIndex = 0;
treeview.Nodes.Add(node);
MakeItem(ref treeview, ref node);
node.Expand();
}
}
}
catch (Exception ex)
{
MessageBox.Show(ex.Message, "DataSet Error", MessageBoxButtons.OK, MessageBoxIcon.Error);
return false;
}
finally
{
cmd.Dispose();
da.Dispose();
ds.Dispose();
if (conn.State != ConnectionState.Closed)
{
conn.Close();
}
}
}
return true;
}
private void MakeItem(ref TreeView treeview, ref TreeNode treenode)
{
DataView dv = new DataView();
dv.Table = ds.Tables["S_MENU"];
dv.RowFilter = "UP_MENU_NO = '" + treenode.Name + "'";
dv.Sort = "SORT_NO";
foreach (DataRowView drv in dv)
{
TreeNode node = new TreeNode();
node.Name = drv["MENU_NO"].ToString();
node.Text = drv["MENU_NM"].ToString();
string winno = drv["WIN_NO"].ToString();
if (winno == null || winno == "")
{
node.ImageIndex = 1;
node.SelectedImageIndex = 2;
}
else
{
node.ImageIndex = 3;
node.SelectedImageIndex = 4;
}
treenode.Nodes.Add(node);
MakeItem(ref treeview, ref node);
}
}
}