Visual Basic, .NET, ASP, VBScript
 

   
   
     

Форум - .NET

Страница: 1 |

 

  Вопрос: как установить flatStyle для кнопки... Добавлено: 28.05.11 20:45  

Автор вопроса:  DimBi
Как переписать этот код, чтобы можно было присвоить свойство FlatStyle для кнопок BtnDop, BtnDob, BtnDig и т.д.



        Dim ctrl As Control

        For Each ctrl In TLPCardio.Controls
            Select Case ctrl.Name
                Case Is = "PanelDof"
                    ctrl.Margin = New Padding(0, 0, 0, 0)
                    ctrl.BackColor = Color.White
                    BtnDop.FlatStyle = FlatStyle.Flat
                    BtnDop.FlatAppearance.BorderColor = Color.White
                    BtnDop.Font = New Font("Segoe ui", 12, FontStyle.Italic)
                Case Else
                    ctrl.Margin = DefaultMargin
                    ctrl.BackColor = Color.Gray
                    BtnDob.FlatStyle = FlatStyle.System
                    BtnDob.FlatAppearance.BorderColor = Color.Black
                    BtnDob.Font = New Font("Microsoft Sans Serif", 8.25, FontStyle.Regular)
                    BtnDig.FlatStyle = FlatStyle.System
                    BtnDig.FlatAppearance.BorderColor = Color.Black
                    BtnDig.Font = New Font("Microsoft Sans Serif", 8.25, FontStyle.Regular)
                    BtnNeoton.FlatStyle = FlatStyle.System
                    BtnNeoton.FlatAppearance.BorderColor = Color.Black
                    BtnNeoton.Font = New Font("Microsoft Sans Serif", 8.25, FontStyle.Regular)
            End Select
        Next


если написать

ctrl.flatstyle = FlatStyle.System

происходит ошибка:
flatstyle не является членом System.Windows.Forms.Control

Ответить

  Ответы Всего ответов: 7  

Номер ответа: 1
Автор ответа:
 Дмитрий Юпатов



Вопросов: 4
Ответов: 457
 Web-сайт: cargomaster.at.ua/
 Профиль | | #1
Добавлено: 29.05.11 00:57
похоже, что у контрола с именем PanelDof нет свойства flatstyle. Или где там ты пытаешься всунуть строку ctrl.flatstyle = FlatStyle.System

Ответить

Номер ответа: 2
Автор ответа:
 DimBi



Вопросов: 15
Ответов: 55
 Профиль | | #2 Добавлено: 29.05.11 01:16
конечно, у контрола нет свойства flatstyle. Это свойство есть у кнопки. Я хочу обойти все кнопки и поменять это свойство.
как то так...
    Private Sub BtnDop_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles BtnDop.Click

        ;Dim ctrl As Control

        For Each ctrl In TLPCardio.Controls
            Select Case ctrl.Name
                Case Is = "PanelDof"
                    ctrl.Margin = New Padding(0, 0, 0, 0)
                    ctrl.BackColor = Color.White
                    BtnDop.FlatStyle = FlatStyle.Flat
                    BtnDop.FlatAppearance.BorderColor = Color.White
                    BtnDop.Font = New Font("Segoe ui", 12, FontStyle.Italic)
                Case Else
                    ctrl.Margin = DefaultMargin
                    ctrl.BackColor = Color.Gray
                    'BtnDob.FlatStyle = FlatStyle.System
                    'BtnDob.FlatAppearance.BorderColor = Color.Black
                    'BtnDob.Font = New Font("Microsoft Sans Serif", 8.25, FontStyle.Regular)
                    'BtnDig.FlatStyle = FlatStyle.System
                    'BtnDig.FlatAppearance.BorderColor = Color.Black
                    'BtnDig.Font = New Font("Microsoft Sans Serif", 8.25, FontStyle.Regular)
                    'BtnNeoton.FlatStyle = FlatStyle.System
                    'BtnNeoton.FlatAppearance.BorderColor = Color.Black
                    'BtnNeoton.Font = New Font("Microsoft Sans Serif", 8.25, FontStyle.Regular)
                    ;Dim btn As Control
                    For Each btn In ctrl.Controls
                        btn.flatstyle = FlatStyle.System 'здесь ошибка
                    Next
            End Select
        Next
    End Sub

Ответить

Номер ответа: 3
Автор ответа:
 DimBi



Вопросов: 15
Ответов: 55
 Профиль | | #3 Добавлено: 29.05.11 01:41
sorry...
  1.  
  2. Private Sub BtnDop_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles BtnDop.Click
  3.         Dim ctrl As Control
  4.         For Each ctrl In TLPCardio.Controls
  5.             Select Case ctrl.Name
  6.                 Case Is = "PanelDof"
  7.                     ctrl.Margin = New Padding(0, 0, 0, 0)
  8.                     ctrl.BackColor = Color.White
  9.                     BtnDop.FlatStyle = FlatStyle.Flat
  10.                     BtnDop.FlatAppearance.BorderColor = Color.White
  11.                     BtnDop.Font = New Font("Segoe ui", 12, FontStyle.Italic)
  12.                 Case Else
  13.                     ctrl.Margin = DefaultMargin
  14.                     ctrl.BackColor = Color.Gray
  15.  
  16.                     Dim btn As Control
  17.                     For Each btn In ctrl.Controls
  18.                         btn.flatstyle = FlatStyle.System
  19.                     Next
  20.             End Select
  21.         Next
  22.     End Sub

Ответить

Номер ответа: 4
Автор ответа:
 Дмитрий Юпатов



Вопросов: 4
Ответов: 457
 Web-сайт: cargomaster.at.ua/
 Профиль | | #4
Добавлено: 29.05.11 10:03
так проверяй, является ли очередной контрол кнопкой или нет.

Ответить

Номер ответа: 5
Автор ответа:
 DimBi



Вопросов: 15
Ответов: 55
 Профиль | | #5 Добавлено: 29.05.11 13:12
проверяю:
  1. Dim btn As Control
  2.                     For Each btn In ctrl.Controls
  3.                         If TypeOf (btn) Is Button Then
  4.                             MessageBox.Show((btn.GetType).ToString) 'возвращает тип System.Windows.Forms.Button
  5.                             btn.flatstyle = FlatStyle.System 'возвращает ошибку
  6.                         End If
  7.                     Next

проверка только подтверждает, что контрол является Button'ом и поэтому ему не может быть присвоено свойство flatstyle.
В этом то я и запутался... Как тогда при интерации коллекций?

Ответить

Номер ответа: 6
Автор ответа:
 DimBi



Вопросов: 15
Ответов: 55
 Профиль | | #6 Добавлено: 29.05.11 13:14
вот что нашел....
  1.                   Dim btn As Control
  2.                     For Each btn In ctrl.Controls
  3.                         If TypeOf (btn) Is Button Then
  4.                             DirectCast(btn, Button).FlatStyle = FlatStyle.System
  5.                             DirectCast(btn, Button).FlatAppearance.BorderColor = Color.Black
  6.                             DirectCast(btn, Button).Font = New Font("Microsoft Sans Serif", 8.25, FontStyle.Regular)
  7.                         End If
  8.                     Next

так работает правильно!

Ответить

Номер ответа: 7
Автор ответа:
 DimBi



Вопросов: 15
Ответов: 55
 Профиль | | #7 Добавлено: 29.05.11 13:55
переписал для clic 4-х кнопок вот так:
  1. Private Sub Btn_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles BtnDop.Click, BtnDob.Click, BtnDig.Click, BtnNeoton.Click
  2.         Dim ctrl As Control
  3.         Dim btn As Control
  4.  
  5.         For Each ctrl In TLPCardio.Controls
  6.             If ctrl.Controls.Contains(sender) Then
  7.                 ctrl.Margin = New Padding(0, 0, 0, 0)
  8.                 ctrl.BackColor = Color.White
  9.                 sender.FlatStyle = FlatStyle.Flat
  10.                 sender.FlatAppearance.BorderColor = Color.White
  11.                 sender.Font = New Font("Segoe ui", 12, FontStyle.Italic)
  12.             Else
  13.                 ctrl.Margin = DefaultMargin
  14.                 ctrl.BackColor = Color.Gray
  15.                 For Each btn In ctrl.Controls
  16.                     If TypeOf (btn) Is Button Then
  17.                         DirectCast(btn, Button).FlatStyle = FlatStyle.System
  18.                         DirectCast(btn, Button).FlatAppearance.BorderColor = Color.Black
  19.                         DirectCast(btn, Button).Font = New Font("Microsoft Sans Serif", 8.25, FontStyle.Regular)
  20.                     End If
  21.                 Next
  22.             End If
  23.         Next
  24.     End Sub

Ответить

Страница: 1 |

Поиск по форуму



© Copyright 2002-2011 VBNet.RU | Пишите нам