表結構與內容 MenBh MenText Bhparent 0001 文件 0002 編輯 0005 打開 0001 0006 新建 0001 0011 access數據庫 0006 0012 VFP的Dbf 0006 0013 剪切 0002 0014 復制 0002 0015 完全復制 0014
Private m As New MainMenu() Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load Dim conn As New SqlConnection("server=localhost;uid=sa;pwd=;database=jiang") Dim cmd As New SqlCommand("select * from a_menu ", conn) Dim ds As New DataSet() Dim sqldpr As New SqlDataAdapter(cmd) sqldpr.Fill(ds, "menu") Me.DataGrid1.DataSource = ds.Tables("menu") '創建關系 Dim dr As New DataRelation("self_menu", ds.Tables("menu").Columns("MenBh"), ds.Tables("menu").Columns("Bhparent")) ds.Relations.Add(dr) Dim r1 As DataRow '查找最高的菜單級別,也就是Bhparent列為空的行 For Each r If r1.IsNull("Bhparent") Then addmenuitem(r1, Nothing) End If Next Me.Menu = m '指定主窗體菜單 End Sub '遞歸函數 Private Sub addmenuitem(ByVal r As DataRow, ByVal item As MenuItem) Dim mi As MenuItem '如果是最外層菜單,要直接添加 If item Is Nothing Then mi = m.MenuItems.Add(r.Item("MenText")) Else '如果是下級菜單要在菜單項的上級添加 mi = item.MenuItems.Add(r.Item("MenText")) End If Dim r2 As DataRow For Each r addmenuitem(r2, mi) Next End Sub '--------------------------------------------------------一種方法的改進 ‘///////////////////////////////////////////////////////////////////////////////////// ‘繼承自menuitem的類 ‘///////////////////////////////////////////////////////////////////////////////////// Public Class mymenuitem Inherits System.Windows.Forms.MenuItem Public Sub New(ByVal s As String, ByVal tag As String) MyBase.New() Me.Text = s m_tag = tag End Sub Private m_tag As String Public Property tag() As String Get Return m_tag End Get Set(ByVal Value As String) m_tag = Value End Set End Property End class [1] [2] 下一頁 |
溫馨提示:喜歡本站的話,請收藏一下本站!