Dim ctrl As System.Windows.Forms.Control
Dim Names As String = "Список имеющихся контролов:"
For Each ctrl In Me.Controls
Names = Names & vbCrLf & ctrl.Name
Next
MsgBox(Names)
Dmitry81 писал(а):и будет тебе счастье
Public Sub ApplyStyle(ByVal cntrl As Control)
' Действия ф-ии:
' 1) Устанавливает для cntrl стиль;
' 2) Рекурсия для всех SubControls.
' Для cntrl
If TypeOf (cntrl) Is Form Then
With CType(cntrl, Form)
' Внешний вид окна
.BackColor = Me.BackColor
.ForeColor = Me.MajorTextColor
.Opacity = CDbl(Me.Opacity) / 100
.TopMost = Me.TopMost
...
Else
Call APPL(cntrl)
End If
' Для каждого Sub Control
For Each SubCntrl As Control In cntrl.Controls
' Рекурсия
Call ApplyStyle(SubCntrl)
Next
End Sub
ndemidov писал(а):Вот как я делал в своей программе для назначения единого стиля для ЭУ:
- Код: Выделить всё
Call APPL(cntrl)
...
Call ApplyStyle(SubCntrl)
Dim ss As String
Private Sub search_ctrl(ByVal CtrlP As System.Windows.Forms.Control)
Dim CtrlCh As Control
For Each CtrlCh In CtrlP.Controls
ss = CtrlCh.Parent.Name & "." & CtrlCh.Name & vbCrLf & ss
If CtrlCh.Controls.Count > 0 Then Me.search_ctrl(CtrlCh)
Next
End Sub
Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
ss=VbNullString
Me.search_ctrl(Me)
MsgBox(ss)
End Sub
Calhoon писал(а):Спасибо. Я попробовал код Williams'а - все хорошо
Calhoon писал(а):Спасибо. Я попробовал код Williams'а - все хорошо, но такой подход не отображает дочерние элементы SplitContainer, ToolSplitPanel - видимо, для такие контролы придется распознавать и получать имена дочерних через их свойства... Жаль, ведь это могут быть не единственные подобные контролы, а я пытаюсь получить универсальный код)
Public Sub ProcessControls(ByVal c As Windows.Forms.Control)
If Not String.IsNullOrEmpty(c.Name) Then Console.WriteLine(c.Name)
If c.Controls.Count <> 0 Then
For Each c1 As System.Windows.Forms.Control In c.Controls
ProcessControls(c1)
Next
End If
End Sub
ProcessControls(Me)
Dmitry81 писал(а):ну и чем он отличается от других?..
Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 31