2012-02-25 2 views
1

私はパネルにDropDownListコントロールを持ち、このパネルはSplitContainerpanel1に配置されています。 DropDownListの場合、修飾子プロパティを 'Public'に変更しましたが、別のクラスからこのコントロールにアクセスすることはできません。パネルに配置されたコントロールの値にアクセスする方法は?

//created instance of the form 
Payment pForm = new Payment(); 

スプリットコンテナの外に配置された他のコントロールにアクセスすることができます。

string amount = pForm.tbAmount.Text; 

しかし、私はドロップダウンリストコントロールにアクセスできません。

答えて

4

スプリットコンテナは2つのパネルがあり、各パネルは、そう、コントロールのコレクションを持っています明らかに

ComboBox dropdown = pForm 
    .SplitContainer1  // get the splitcontainer control of pForm 
    .Panel1    // get the first panel of this container 
    .Controls    // get the controls collection 
    .OfType<ComboBox>() // find all controls that are of type ComboBox 
    .FirstOrDefault();  // get the first or null if none 

Paymentフォームクラスの外からpForm.SplitContainer1にアクセスできるようにするために、あなたが提供する必要がありますそれを公開するゲッター。

そして、あなたは、さらにドロップダウンの名によって制約したい場合(あなたはこのパネルで複数のドロップダウンを持っていたと仮定した場合):

ComboBox dropdown = pForm. 
    .SplitContainer1 
    .Panel1 
    .Controls 
    .OfType<ComboBox>() 
    .FirstOrDefault(x => x.Name == "comboBox1"); 
+0

\ありがとうございました。 – Jyina

関連する問題