搞定了
conn = new ("=192.168.2.103;uid=ht1;pwd=;=ht1");
ds;
Form1()
{
();
conn.Open();
this.();
//conn.Close();
this.();
//
conn.Close();
}
()
{
ds = new ();
= " * from order by px";
cs = new (, conn);
cs.Fill(ds, "Tree");
ds;
}
void ()
{
//定義一個主菜單
= new ();
// ds = new ();
//從XML中讀取數據。數據結構后面詳細講一下。
//ds.(@"..\..\Menu.xml");
dv = ds.[0].;
//通過來過濾數據首先得到最頂層的菜單
dv. = "=0";
for (int i = 0; i < dv.Count; i++)
{
//創建一個菜單項
= new ();
//給菜單賦Text值。也就是在界面上看到的值。
.Text = dv[i]["Name"].();
//如果是有下級菜單則通過方法來創建下級菜單
if (.(dv[i][""]) == 0)
{
//以ref的方式將頂層菜單傳遞參數,因為他可以在賦值后再回傳。--也許還有更好的方法^_^.
(ref , .(dv[i]["id"]), ds.[0]);
}
//顯示應用程序中已打開的 MDI 子窗體列表的菜單項
. = ;
//將遞歸附加好的菜單加到菜單根項上。
.Items.Add();
}
.Dock = .Top;
//將窗體的梆定為.
this. = ;
//這句很重要。如果不寫這句菜單將不會出現在主窗體中。
this..Add();
}
void (ref , int , dt)
{
dv = new (dt);
//過濾出當前父菜單下在所有子菜單數據(僅為下一層的)
dv. = "=" + .();
for (int i = 0; i < dv.Count; i++)
{
//創建子菜單項
= new ();
.Text = dv[i]["Name"].();
//如果還有子菜單則繼續遞歸加載。
if (.(dv[i][""]) == 0)
{
//遞歸調用
(ref , .(dv[i][""]), dt);
}
else
{
//擴展屬性可以加任何想要的值。這里用屬性來加載窗體。
.Tag = dv[i]["Name"].();
//給沒有子菜單的菜單項加事件。
.Click += new ();
}
if (dv[i][""].(). > 0)
{
//設置菜單項前面的圖票為16X16的圖片文件。
//Image img = Image.(@"..\..\Image\" + dv[i][""].());
//.Image = img;
//.Image.Tag = dv[i][""].();
}
//將菜單加到頂層菜單下。
..Add();
}
}