none
請問如何動態找到放在tab的tabpage中的listbox呢? RRS feed

  • 問題

  • 請問各位先進:

        請問要如何用程式,去找到放在Tab的tabpage中的listbox ,而在這些listbost新增東西呢?  

        因為我想要用程式去動態新增一些東西在listboxt中。 

        謝謝
    2007年10月25日 上午 01:14

解答

  • 程式碼區塊
    foreach (TabPage tb in tabControl1.TabPages)
    {
        foreach (Control c in tb.Controls)
        {
            if (c is ListBox && c.Name == "listBox2")
            {
                ((ListBox) c).Items.Add("A");
                ((ListBox) c).Items.Add("B");
                ((ListBox) c).Items.Add("C");
            }
        }
    }

     

     

    你可以遞迴搜尋 TabControl 的 TabPages

     

    然後遞迴尋找 TabPages 中的控制項

     

    再判斷控制項是否為 ListBox 以及確認 .Name 屬性是否符合你講的使用者自訂的名稱...

     

    最後再加入 Items

     

     

    2007年10月27日 下午 04:20

所有回覆

  • listBox1.Items.Add()

     

     

     

    2007年10月25日 上午 01:57
  • 在 .Net 中每個控制項都有 Controls 代表子控制項,所以透過遞回搜尋子控制項即可。

     

    知道物件名的話可以透過其他方式取得

     

    註: .Net 2.0 的新選單不是用 Controls 來放子控制項

     

    2007年10月25日 上午 01:59
    版主
  • hi chhuang  

     

        我是要傳進去tabcontrol這個物件後,再去找出分別放置在各個tabpage中的listbox,再用listbox.items.add這個指令的。所以名稱是讓使用者自定的。  

       謝謝回答
    2007年10月27日 下午 04:07
  • 所以遞回時,判斷子控制項型別即可,vb 可以直接用 TypeName(ctl) = "ListBox" 來處理。

     

    2007年10月27日 下午 04:12
    版主
  • 程式碼區塊
    foreach (TabPage tb in tabControl1.TabPages)
    {
        foreach (Control c in tb.Controls)
        {
            if (c is ListBox && c.Name == "listBox2")
            {
                ((ListBox) c).Items.Add("A");
                ((ListBox) c).Items.Add("B");
                ((ListBox) c).Items.Add("C");
            }
        }
    }

     

     

    你可以遞迴搜尋 TabControl 的 TabPages

     

    然後遞迴尋找 TabPages 中的控制項

     

    再判斷控制項是否為 ListBox 以及確認 .Name 屬性是否符合你講的使用者自訂的名稱...

     

    最後再加入 Items

     

     

    2007年10月27日 下午 04:20