2016-07-13 5 views
-1

VB.NET에서 .NET Compact Framework 3.5를 사용하는 시스템에서 VisualStudio 2008을 사용하고 있으며 두 개의 구성 요소 즉 Timers 및 Messagebox가 포함 된 양식이 있습니다. 내 응용 프로그램의 일부는 폼의 모든 컨트롤을 반복하고 Front 또는 BackColor와 같은 속성을 조정하여 필요할 때 전체 응용 프로그램을 다시 만들 수있는 하위 프로그램입니다.Windows Form의 구성 요소를 반복하는 방법은 무엇입니까?

이러한 컨트롤을 반복하면서 구성 요소를 반복하고 양식의 Messageboxes 일부 속성을 설정하고 싶습니다. 나는 For Each를 사용하여 Me.components.Components에 액세스하려고 시도했지만 컬렉션은 비공개로 나타납니다.

For Each comp As Object in Me.components 
    <do something> 
Next comp 

구성 요소를 반복 할 수있는 방법이 있습니까?

편집 :

내가 me.components.Component이 비공개 잘못된 생각이었다. Me.components.Components를 사용하여 나는 다음과 같은 오류가 발생합니다 :

'Components' is not a member of 'System.ComponentModel.IContainer".

+0

로 인'MessageBox'이 구성 요소도 제어하지 않습니다. 그것은 당신이 호출 할 경우에만 생성 대화 상자입니다'MessageBox.Show()'. .NET 코드를 사용하여 찾을 수 없을 가능성이 높습니다. 예를 들어 WinAPI의 EnumWindows() 함수에서 플랫폼 호출을 수행해야합니다. –

+0

작은 파고를 한 후에 Compact Framework에서 구성 요소가 실제로 관련되지 않음을 알았습니다. 양식 자체. 그들은 여전히 ​​다른 곳에서 찾을 수 있습니다.이 두 답변을 참조하십시오 : [** \ [1 \] **] (http://stackoverflow.com/a/14628749/3740093) [** \ [2 \ ] **] (http://stackoverflow.com/a/371829/3740093) –

답변

0

할 수 있습니다 이와 루프 축복하는 타이머 : ....

For Each c As Object In Me.components.Components 
     If TypeOf c Is Timer Then 
      Dim tim As Timer = CType(c, System.Windows.Forms.Timer) 
      tim.Interval = 12345 
     End If 
    Next 

변경 당신은 타이머에 수행 할 anithing와 .Interval = 12345.

For Each ctrl As Control In Me.Controls 
     If (ctrl.GetType() Is GetType(TextBox)) Then 
      Dim txt As TextBox = CType(ctrl, TextBox) 
      txt.BackColor = Color.LightYellow 
     End If 
    Next 

변경 제어

당신이 컨트롤을 수행 할 아무것도

그리고 .BackColor = Color.LightYellow의 종류와 TextBox :

.... 그리고 다른 컨트롤을 통해

.

불행히도 내가 어떻게 해야할지 않는다 MesseageBoxes :(

+0

'For Each를 사용하여 Me.components.Components에 액세스하려고 시도했지만 해당 컬렉션 비공개로 보입니다. \ * Ahem \ * \ * ahem \ *? :) –

+0

Me.components는 비공개입니다. 'Me.components.Components'는 그렇지 않습니다. 그리고 그것이 작동하지 않으면, 두 번째 않습니다. – BanForFun

+0

... 두 번째 코드는 구성 요소를 사용하지 않습니다. 나는 전화로 글을 쓰고 있기 때문에 묻고있는 중이므로 아무 것도 테스트 할 수 없다. 어느 쪽이든,'Me.components'는 사적 일지 모르지만'Me'가 형태이기 때문에 접근하는 데 아무런 문제가 없습니다. :) –

관련 문제