none
請問 ComboBox 迴圈編寫問題 RRS feed

  • 問題

  • 請問 我開啟了數個 ComboBox,並且把名稱改成了 選項1

    設定items好以後,想讓他執行程式後,預先顯示項目     選項1.SelectedIndex = 1

    要如何讓  選項1~選項 20 利用迴圈設定同一個指令呢

    for i=1 to 20

    選項(i).SelectedIndex = 1

    next i

    2011年3月31日 上午 07:16

解答

  • 他會出現錯誤訊息  'SelectedIndex' 不是 'System.Windows.Forms.Control' 的成員

     

    您好

    您是這樣寫的嗎? 您是 VB.NET 還是 VB6


            For i = 1 To 20
                DirectCast(Controls("選項" & i.ToString()), ComboBox).SelectedIndex = 1
            Next i

    這樣的寫法是很陽春的,建議您再加上判斷 Controls Name 是否存在,另外,建議不要使用中文命名

    http://www.google.com.tw/search?q=DirectCast+Controls+site:http://social.msdn.microsoft.com&hl=zh-TW&prmd=ivns&source=lnt&tbs=lr:lang_1zh-TW&lr=lang_zh-TW&sa=X&ei=xi2UTaLvA4GqvQPql4WDDA&ved=0CAgQpwUoAg


    歡迎參觀我的Blog.NET菜鳥自救會
    • 已標示為解答 2011年3月31日 上午 07:37
    2011年3月31日 上午 07:29
    版主
  • 您好

    可能的情況是你的 Control Name 不存在,我有提醒你要做判斷,不知道您有沒有加上? 使用 Controls.Find

            For i = 1 To 20
                Dim c = Controls.Find("ComboBox" & i.ToString(), True)
                If c.Length > 0 Then
                    DirectCast(c(0), ComboBox).SelectedIndex = 1
                End If
            Next i


    歡迎參觀我的Blog.NET菜鳥自救會
    • 已標示為解答 2011年3月31日 上午 10:18
    2011年3月31日 上午 08:38
    版主
  • 您好

    參考以下程式碼

    Public Class Form1
        Private Sub Button2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button2.Click
            For i = 6 To 10
                Dim c = Controls.Find("定時_星期" & i.ToString(), True)
                If c.Length > 0 Then
                    DirectCast(c(0), ComboBox).SelectedIndex = 1
                End If
            Next i
        End Sub

        Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
            For i = 1 To 5
                Dim c = Controls.Find("定時_星期" & i.ToString(), True)
                If c.Length > 0 Then
                    DirectCast(c(0), ComboBox).SelectedIndex = 1
                End If
            Next i
        End Sub
    End Class


    歡迎參觀我的Blog.NET菜鳥自救會
    • 已標示為解答 2011年3月31日 上午 10:15
    2011年3月31日 上午 09:47
    版主

所有回覆