1

わかりましたので、関連するコードは次のとおりです。

Public Shared compSelect(9) As ComboBox
Public Shared compPercent(9) As TextBox
Private Sub MainForm_Load(sender As Object, e As EventArgs) Handles MyBase.Load
    Data.LoadComponents("C:/Users/Jon/Documents/Visual Studio 2013/Projects/QuickBlend/QuickBlend/QuickBlend/Resources/databaseText.txt")
    MsgBox("finished loading")
    MainForm.compSelect = {CompSelect1, CompSelect2, CompSelect3, CompSelect4, CompSelect5, CompSelect6, CompSelect7, CompSelect8, CompSelect9, CompSelect10}
    MainForm.compPercent = {CompPercent1, CompPercent2, CompPercent3, CompPercent4, CompPercent5, CompPercent6, CompPercent7, CompPercent8, CompPercent9, CompPercent10}
    For Each box As ComboBox In MainForm.compSelect
        box.DataSource = Data.Components
        box.DisplayMember = "Name"
        For Each comp As String In Data.ComponentNames
            box.Items.Add(comp)
        Next
        MsgBox("looped")
    Next
    MsgBox("finished loop")
End Sub

ご覧のとおり、何が起こっているかを正確に確認するために、さまざまな MsgBox を配置しました。「ループ」メッセージ ボックスは表示されません。forループを完全にスキップする理由を誰かに説明できますか? しばらくこれに取り組んでいて、うんざりしました。助けてくれてありがとう!=)

4

2 に答える 2

2

MainForm.compSelectこれはMe.compSelectインスタンス(コンボボックスで埋められている)であり、埋められていないオブジェクトの完全修飾名だけではないためです。

于 2013-08-02T19:00:03.603 に答える
0

問題は、コンボボックスのデータソースを設定してから、アイテムを追加しようとしていることです。.NET はこれを好まず、(例外処理が追加されていない限り) 警告なしに、これを実行しようとする Sub を終了します。あなたのコードは...

Public Shared compSelect(9) As ComboBox
Public Shared compPercent(9) As TextBox
Private Sub MainForm_Load(sender As Object, e As EventArgs) Handles MyBase.Load
Data.LoadComponents("C:/Users/Jon/Documents/Visual Studio 2013/Projects/QuickBlend/QuickBlend/QuickBlend/Resources/databaseText.txt")
MsgBox("finished loading")
MainForm.compSelect = {CompSelect1, CompSelect2, CompSelect3, CompSelect4, CompSelect5, CompSelect6, CompSelect7, CompSelect8, CompSelect9, CompSelect10}
MainForm.compPercent = {CompPercent1, CompPercent2, CompPercent3, CompPercent4, CompPercent5, CompPercent6, CompPercent7, CompPercent8, CompPercent9, CompPercent10}
For Each box As ComboBox In MainForm.compSelect
    box.DataSource = Data.Components
    box.DisplayMember = "Name"
    'take this stuff out, it is not needed
    'For Each comp As String In Data.ComponentNames
        'box.Items.Add(comp)
    'Next
    MsgBox("looped")
Next
MsgBox("finished loop")
End Sub
于 2013-08-02T19:56:49.503 に答える