Click here to Skip to main content
15,907,000 members
Please Sign up or sign in to vote.
0.00/5 (No votes)
See more:
Thank U Sir,
ur code works but i have problem..
As per ur suggestion i did the code but, it does not adding my submenu. also not displaying any error...
pls inform the necessary changes

my code is given below for my windows form
C#
 private void button1_Click(object sender, EventArgs e)
    {

        ds = clsdb.getDataset("SP_MENU");
        int j = ds.Tables[0].Rows.Count;
        MenuItem[] mi = new MenuItem[j];

        for (int i = 0; i < j; i++)
        {
            mi[i] = new MenuItem();
            mi[i].Text = ds.Tables[0].Rows[i]["tx_name"].ToString();
            mi[i].MergeType = MenuMerge.MergeItems;
            a = ds.Tables[0].Rows[i]["sub_menu"].ToString().Trim();
            if (a == "")
            {
                MM.MenuItems.Add(mi[i].Text);
                 CallSubMenu(ds.Tables[0].Rows[i]["tx_code"].ToString(), mi[i]);
            }
        }
        this.Menu = MM;
    }



    // Its for subMenu Adding
    private void CallSubMenu(string sName, MenuItem main)
    {
        SqlParameter[] par = new SqlParameter[1];
        par[0] = new SqlParameter("@sub_menu", SqlDbType.VarChar);
        par[0].Value = sName;
        dssub = clsdb.getDataset("SP_SUBMENU",par);

        int p=dssub.Tables[0].Rows.Count ;

        MenuItem[] submenu = new MenuItem[p];
        for (int ix = 0; ix < p; ix++)
        {
            submenu[ix] = new MenuItem();
            submenu[ix].Text = dssub.Tables[0].Rows[ix]["tx_name"].ToString();
            submenu[ix].MergeType = MenuMerge.MergeItems;
            main.MenuItems.Add(submenu[ix].Text);
        }
        this.Menu = MM;
    }
}
Posted
Updated 13-Sep-10 23:21pm
v3
Comments
Dalek Dave 14-Sep-10 5:07am    
Edited for Code Block.

Hi Sagar55,

//Here i am change your code and i am using MenuStrip Control.


//Declare MenuStrip Control Object (Assign Global)
MenuStrip ms = new MenuStrip();

private void button1_Click(object sender, EventArgs e)
       {
           ds = clsdb.getDataset("SP_MENU");
           int j = ds.Tables[0].Rows.Count;           
           for (int i = 0; i < j; i++)
           {
               ToolStripMenuItem tsmMain=new ToolStripMenuItem(ds.Tables[0].Rows[i]["tx_name"].ToString());
              tsmMain.DisplayStyle=ToolStripItemDisplayStyle.Text; 
              ms.Items.Add(tsmMain);
              CallSubMenu(ds.Tables[0].Rows[i]["tx_code"].ToString(),tsmMain);
               
           }
           this.Controls.Add(ms);
       }

       private void CallSubMenu(string sName, ToolStripMenuItem main)
       {
           SqlParameter[] par = new SqlParameter[1];
           par[0] = new SqlParameter("@sub_menu", SqlDbType.VarChar);
           par[0].Value = sName;
           dssub = clsdb.getDataset("SP_SUBMENU",par);
           int p=dssub.Tables[0].Rows.Count ;
           for (int i = 0; i < p; i++)
           {
               ToolStripMenuItem tsmSub=new ToolStripMenuItem(dssub.Tables[0].Rows[i]["tx_name"].ToString());
              tsmSub.DisplayStyle=ToolStripItemDisplayStyle.Text; 
              main.DropDownItems.Add(tsmSub);
              CallSubMenu(dssub.Tables[0].Rows[i]["tx_code"].ToString(),tsmSub);
               
           }
       }
   }


I hope this code helpful to you.

Cheers :)
 
Share this answer
 
this will work for sure.

follow it exactly as mentioned.

http://aspalliance.com/822[^]
 
Share this answer
 
Comments
Sagar Khairnar 55 14-Sep-10 5:20am    
Sorry,I m Working on Windows C#

This content, along with any associated source code and files, is licensed under The Code Project Open License (CPOL)



CodeProject, 20 Bay Street, 11th Floor Toronto, Ontario, Canada M5J 2N8 +1 (416) 849-8900