2017-06-07 5 views
0

以下のリンクからlinqの例を使用しました。 Going through controls in orderタイプ 'OrderedEnumerable(Of Panel、Integer)'のパブリックメンバー 'Count'が見つかりません

これは私が探していたものです。それは私のために働いた。 Tim Schmelterありがとうございました

私はタイマーコントロールといくつかのコードを追加しました。私の問題は今始まります。その後、実行中にエラーが表示されます。 countプロパティを使用してコード領域を削除しても、機能しません。

パブリックメンバ 'Count' on 'OrderedEnumerable(Of Panel、Integer)'が見つかりません。

私は誰もが私を助けることができる... 輸入System.Linqの

を輸入しています。私は問題が(離れてOrderedEnumerableは何のインデクサーを持っていないので、allPanels(mFirstPanel)がコンパイルされないという事実から)何であるかはよく分からないことを認めなければならないが、これは動作するはず

Private Sub InitialisePanels() '(pnl As Control) 
    Dim allPanels = From pnl In Me.Controls.OfType(Of Panel)() 
       Order By pnl.TabIndex 

    'Dim blnControlPresent As Boolean 
    For Each pnl As Panel In allPanels 
     If pnl.[GetType]().Name = "Panel" Then 
      pnl.BringToFront() 
      pnl.Visible = True 
      pnl.Dock = DockStyle.Fill 
      pnl.Visible = False 
      pnl.SendToBack() 
     End If 
    Next 
    If allPanels.Count > 0 Then 
     allPanels(mFirstPanel).BringToFront() 
     allPanels(mFirstPanel).Visible = True 
     mCurrentPanel = mFirstPanel 
    End If 
End Sub 
+0

ありがとうございます。しかし、それは動作しませんでした。 –

答えて

0

をVB.NETに新しいです最初のパネルを前面に持ってきたいと仮定します。

Private Sub InitialisePanels() '(pnl As Control) 
    Dim allPanels = From pnl In Me.Controls.OfType(Of Panel)() 
        Order By pnl.TabIndex  
    For Each pnl As Panel In allPanels 
     pnl.BringToFront() 
     pnl.Visible = True 
     pnl.Dock = DockStyle.Fill 
     pnl.Visible = False 
     pnl.SendToBack() 
    Next 

    Dim firstPanel As Panel = allPanels.FirstOrDefault() 

    If firstPanel IsNot Nothing Then 
     firstPanel.BringToFront() 
     firstPanel.Visible = True 
     mCurrentPanel = firstPanel 
    End If 
End Sub 
+0

ありがとうTim。出来た。私のコーディングを完了するまでには時間がかかりました。だから遅く応答しました。とにかく、カウント方法がうまくいかなかったのは疑いがあります。私はそれを理解できませんでした。 –

関連する問題