Visual Basic, .NET, ASP, VBScript
 

   
   
     

Форум - .NET

Страница: 1 |

 

  Вопрос: Класс "Панель инструментов". Добавлено: 01.04.07 23:28  

Автор вопроса:  den
Уважаемые знатоки.
У меня возник следующий вопрос.
В проекте есть три формы: 1 (назовем её Главная), 2 и 3.
При запуске .exe на экран загружается Главная форма,
вызов остальных двух форм производится из главного меню формы (MainMenu).
В формах 2 и 3 должна быть панель инструментов (ToolBar).
Панель инструментов одинаковая.
В каждой форме я пишу следующий код:

Public Class Form2
...............................
    Private Sub Form2_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
        Me.Text = "Расчет" & Date.Today & " " & My.User.Name
        Toolb()
    End Sub

    Private Sub Toolb()
        Dim bm As New Bitmap(Me.GetType(), "StandardButtons.bmp")
        Dim imglst As New ImageList()
        imglst.ImageSize = New Size(19, 19)
        imglst.Images.AddStrip(bm)
        imglst.TransparentColor = Color.Cyan

        Dim tbar As New ToolBar()
        tbar.Parent = Me
        tbar.ImageList = imglst
        tbar.ShowToolTips = True

        Dim astr() As String = {"Сохранить", "Отменить", "Вставить запись", "Удалить запись", "Копировать", "Вставить", "Печать", "Выгрузить в Excel"}
        Dim i As Integer
        For i = 0 To astr.GetUpperBound(0)
            Dim tbb As New ToolBarButton()
            tbb.ImageIndex = i
            tbb.ToolTipText = astr(i)
            tbar.Buttons.Add(tbb)
        Next i
    End Sub
....................................
End class

Соответственно, тоже самое я пишу и в форме 3:

Public Class Form3
...............................
    Private Sub Form3_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
        Me.Text = "Показатели" & Date.Today & " " & My.User.Name
        Toolb()
    End Sub

    Private Sub Toolb()
.......................................
    End Sub
....................................
End class

Как мне сделать, чтобы код по созданию ToolBar (а он абсолютно одинаковый) не писать в классе формы 2 и 3 ?
Может быть написать новый класс, который бы создавал необходимую панель инструментов, и вызывать его в каждой из форм ?

За объяснения и помощь буду благодарен.
Заранее всем спасибо.

Ответить

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

Номер ответа: 1
Автор ответа:
 -АлександР-



Вопросов: 55
Ответов: 1008
 Web-сайт: sham.clan.su
 Профиль | | #1
Добавлено: 01.04.07 23:44
А как насчет того, чтобы объявить Toolb в модуле?

Ответить

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



Вопросов: 58
Ответов: 4255
 Профиль | | #2 Добавлено: 02.04.07 08:39
А к чему такие извращения с программным созданием ToolBar'a? Я это к тому, что потом ты начнешь задавать вопросы типа: А как подключить события от динамически созданной панели инструментов??? Почему бы не создать ее в режиме Design-Time, как делают в 99% случаях, и спокойно ее юзать? или религия не позволяет?

Ответить

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



Вопросов: 18
Ответов: 14
 Профиль | | #3 Добавлено: 02.04.07 10:25
Не понял вопроса.

Ответить

Номер ответа: 4
Автор ответа:
 den



Вопросов: 18
Ответов: 14
 Профиль | | #4 Добавлено: 02.04.07 10:26
Что за режим Design-Time, и как создать панель инструментов в этом режиме?

Ответить

Номер ответа: 5
Автор ответа:
 -АлександР-



Вопросов: 55
Ответов: 1008
 Web-сайт: sham.clan.su
 Профиль | | #5
Добавлено: 02.04.07 10:50
мда..., EROS, ты задал сложный вопрс :), разъясни пожалуйста на пальцах :))

Ответить

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



Вопросов: 58
Ответов: 4255
 Профиль | | #6 Добавлено: 02.04.07 12:36
мда..., EROS, ты задал сложный вопрс

Ну я не думал, что это вызовет такие затруднения :-))

в режиме Design-Time.. это значит в процессе разработки... это когда ты берешь с тулбокса кнопочку и перетаскиваешь ее на форму.. И с панелью инструментов точно так же.. взял ее и перетащил на форму, добавил пункты меню, написал обработчики .. ну и так далее..
Зачем ты все это динамически делаешь?

Ответить

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



Вопросов: 18
Ответов: 14
 Профиль | | #7 Добавлено: 02.04.07 13:02
я не ищу простых путей:))
А если серьезно, хочется это реализовать при помощи кода, а не при помощи визуальных средств разработки.
И даже при помощи визуальных средств на каждую форму мне нужно будет вручную добавить панель, и потом в классе формы всё-равно писать код для кнопок и обработчики событий.

Ответить

Номер ответа: 8
Автор ответа:
 EROS



Вопросов: 58
Ответов: 4255
 Профиль | | #8 Добавлено: 02.04.07 13:09
Ну раз тебе хочется все это делать ручками, то обычно в таких случаях лучше всего создать базовую форму, реализовать в ней все что необходимо и потом остальные формы от нее наследовать..

Ответить

Номер ответа: 9
Автор ответа:
 BUMM ®



Вопросов: 8
Ответов: 482
 Профиль | | #9 Добавлено: 02.04.07 23:47
ну тада через интерфейсы, чтоб посложнее, а попроще Toolb() в модуль и публично

Ответить

Номер ответа: 10
Автор ответа:
 den



Вопросов: 18
Ответов: 14
 Профиль | | #10 Добавлено: 08.04.07 00:18
Спасибо за подсказку.
Создал базовую форму. Другие формы наследуют от базовой.

Ответить

Страница: 1 |

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



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