Страница: 1 |
Страница: 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-сайт:
Профиль | | #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-сайт:
Профиль | | #5
Добавлено: 02.04.07 10:50
мда..., EROS, ты задал сложный вопрс , разъясни пожалуйста на пальцах )
Номер ответа: 6
Автор ответа:
EROS
Вопросов: 58
Ответов: 4255
Профиль | | #6
Добавлено: 02.04.07 12:36
Ну я не думал, что это вызовет такие затруднения )
в режиме 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
Спасибо за подсказку.
Создал базовую форму. Другие формы наследуют от базовой.