2009-03-09 12 views
2

linqを使用してすべてのコントロールを取得する方法はありますか? >Linqすべてのコントロールを取得します(注文した)

私はリスト<を得たクエリのようなものを使用し

foreach (Control control in this.Controls.OrderBy(c => c.TabIndex) 
{ 
    ... 
} 

...:私がやりたいよ何

はそのような何か(タブインデックスによる制御を注文)であります

私はC#と.Netを使用します。

答えて

4

ControlCollectionはではなく、IEnumerableを実装しています。

foreach (Control control in Controls.Cast<Control>() 
            .OrderBy(c => c.TabIndex)) 
{ 
} 

それとも、必要なCast()を呼び出しますクエリ式を、使用することができます:

var controls = from Control c in Controls 
       orderby c.TabIndex 
       select c; 

foreach (Control control in controls) 
{ 
} 
+0

注:のTabIndexはWebBrowserコントロールの上にあるので、交換してくださいすべてのCast()への呼び出しを追加する - それはしかし、修正するのは簡単です"WebControl"で "コントロール"。 –

+0

TabIndexもWinControl上にあります。 そのすばやい回答のためのThx! – Melursus

+0

おっと、1つの世界ですべてのあなたの時間を過ごすと、他の人が存在することを忘れています:) –

関連する問題