2

私は次の設定をしています:

ComboBox cb1 = new ComboBox();
ComboBox cb2 = new ComboBox();
ComboBox cb3 = new ComboBox();
ComboBox cb4 = new ComboBox();
ComboBox cb5 = new ComboBox();

TableLayoutPanel tlpComboBox = new TableLayoutPanel();
tlpComboBox.ColumnCount = 5;
tlpComboBox.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle(System.Windows.Forms.SizeType.Percent, 20F));
tlpComboBox.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle(System.Windows.Forms.SizeType.Percent, 20F));
tlpComboBox.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle(System.Windows.Forms.SizeType.Percent, 20F));
tlpComboBox.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle(System.Windows.Forms.SizeType.Percent, 20F));
tlpComboBox.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle(System.Windows.Forms.SizeType.Percent, 20F));

tlpComboBox.Controls.Add(cb1, 4, 0);
tlpComboBox.Controls.Add(cb2, 3, 0);
tlpComboBox.Controls.Add(cb3, 2, 0);
tlpComboBox.Controls.Add(cb4, 1, 0);
tlpComboBox.Controls.Add(cb5, 0, 0);

次に、tlpComboBox でコンボボックスの順序を確認しようとしています。テキストボックスでこれを行うには、次のことを行いました。

for (i = 0; i < 5; i++)
{
    Assert.AreNotEqual(tlpText.Controls[i].Text.ToString(), i.ToString());
}

残念ながら、Controls[i] の後では SelectedIndex にアクセスできません。コンボボックスを操作するとき、その理由について少し混乱しています。

for (i = 0; i < 5; i++)
{
    Assert.AreNotEqual(tlpComboBox.Controls[i]. "SelectedIndex isnt accessible", i.ToString());
}

何か案は?

編集:

http://i.imgur.com/7lhzE.jpg

4

1 に答える 1

4

あなたはにキャストする必要がありControls[i]ますComboBox

//sample meta code written in notepad
for (i = 0; i < 5; i++)
{
    Assert.AreNotEqual(
        ((ComboBox )(tlpComboBox.Controls[i])).SelectedIndex , 
        i.ToString());
}

これは、プロパティを持たないControls[i]タイプ(おそらく)であるために発生します。ControlSelectedIndex

于 2012-09-04T09:02:38.743 に答える