每当窗体加载的时候,都读取一个数组
这个数组是动态的(读取文本的值),根据数组的值,
创建菜单!比如说:
文本有三了值,则建立三个菜单项
不知道该如何实现!!!类似与下面的代码!
string[] slists;
PlayList.GetFileList( ref slists );   读取值的函数,固定的!
int i;
for(i=0;i<slists.Length;i++)
{
MenuItem[] meni;
meni[i]=new MenuItem();
meni[i].Visible=true;
meni[i].Text =slists[i];
    this.mainMenu1.MenuItems.Add(meni[i]);
}

解决方案 »

  1.   

    for循环那改成这样for(i=0;i<slists.Length;i++)
    {
      MenuItem meni=new MenuItem();
      meni.Visible=true;
      meni.Text=slists[i];
      mainMenu1.MenuItems.Add(meni);
    }
      

  2.   

    还有点问题!
    string[] slists;
    PlayList.GetFileList( ref slists );   读取值的函数,slists这样定义也有错误!!
    “使用了未赋值的局部变量“slists””
    可是如果我定义了我不能定义大小!
    我不知道
    PlayList.GetFileList能读出多少值
    该如何解决呢???
      

  3.   

    还有点问题!
    string[] slists;
    PlayList.GetFileList( ref slists );   读取值的函数,slists这样定义也有错误!!
    “使用了未赋值的局部变量“slists””
    可是如果我定义了我不能定义大小!
    我不知道
    PlayList.GetFileList能读出多少值
    该如何解决呢???
      

  4.   

    自己up一下!!!!
    我郁闷啊!!!
    都换号来up了!!!
      

  5.   

    用stringbuilder 类声明。
    StringBuilder slists
    这样slists的长度不用声明,根据大小自动增长。
      

  6.   

    可以参考下面,
    private void CreatMenuItem()
    {
    OleDbConnection myConn = new OleDbConnection("Provider=Microsoft.Jet.OLEDB.4.0;Data Source=d:\\Menu.mdb;Persist Security Info=False;");
    OleDbCommand myComm = new OleDbCommand("SELECT nid,name,pid FROM Items ORDER BY pid,nid",myConn);
    OleDbDataAdapter myAda = new OleDbDataAdapter(myComm); 
    DataSet ds = new DataSet();
    myAda.Fill(ds,"MenuItemINfos");
    DataRow [] drs = ds.Tables["MenuItemINfos"].Select("pid = 0");
    int index = 0;
    foreach(DataRow dr in drs)
    {
    MenuItem mi =new MenuItem((string)dr["name"]);
    this.mainMenu1.MenuItems.Add(index++,mi);
    CreatBranch(mi,(int)dr["nid"],ds);
    }
    }
    private void CreatBranch(MenuItem parmt,int pid,DataSet ds)
    {
    int index = 0;
    foreach(DataRow dr in ds.Tables["MenuItemINfos"].Select("pid = "+pid))
    {
    MenuItem mi =new MenuItem((string)dr["name"]);
    parmt.MenuItems.Add(index++,mi);
    CreatBranch(mi,(int)dr["nid"],ds);
    }
    }