Наслодование форм

Язык Visual Basic на платформе .NET.

Модераторы: Ramzes, Sebas

Ramzes
Скромный человек
Скромный человек
Аватара пользователя
 
Сообщения: 5004
Зарегистрирован: 12.04.2003 (Сб) 11:59
Откуда: Из гробницы :)

Наслодование форм

Сообщение Ramzes » 30.05.2006 (Вт) 15:30

Я создал форму от которой хочу наследовать все остальные ее код достаточно прост:
Код: Выделить всё
Imports System.Drawing.Drawing2D
Public MustInherit Class SSForm
    Inherits System.Windows.Forms.Form
    Private Sub SSForm_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load
        Me.ForeColor = MainCls.ForeColor
    End Sub

    Private Sub SSForm_Paint(ByVal sender As Object, ByVal e As System.Windows.Forms.PaintEventArgs) Handles Me.Paint
        If MainCls.UseColors Then
            If e.ClipRectangle.Height > 0 And e.ClipRectangle.Width > 0 Then
                Dim L As LinearGradientBrush
                L = New LinearGradientBrush(e.ClipRectangle, MainCls.Color1, MainCls.Color2, LinearGradientMode.Horizontal)
                Using L
                    e.Graphics.FillRectangle(L, e.ClipRectangle)
                End Using
            End If
        End If
    End Sub

    Private Sub SSForm_Resize(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Resize
        Me.Invalidate()
    End Sub
End Class


Вопрос номер раз: Формы унаследованые от моей формы в редакторе форм не отображаются :( чего-то там много очень говорит. Неужели мне придется компилить одну форму в сборку и от нее наледоватся? бред.

Вопрос номер два:
Код: Выделить всё
        Application.OpenForms

Будет "показывать" формы унаследованые от моей?

Viper
Артефакт VBStreets
Артефакт VBStreets
Аватара пользователя
 
Сообщения: 4394
Зарегистрирован: 12.04.2005 (Вт) 17:50
Откуда: Н.Новгород

Сообщение Viper » 30.05.2006 (Вт) 16:47

Насчет неотображения в редакторе. Форма наследник отображается в редакторе как-то хитро (Щас доберусь до VB.NET и уточню сей момент)

Application.OpenForms показывает открытые в данный момент формы приложения
Весь мир матрица, а мы в нем потоки байтов!

Ramzes
Скромный человек
Скромный человек
Аватара пользователя
 
Сообщения: 5004
Зарегистрирован: 12.04.2003 (Сб) 11:59
Откуда: Из гробницы :)

Сообщение Ramzes » 30.05.2006 (Вт) 16:51

!Viper!
а чем оно ркуоводствуется? просто фактически родительский класс формы уже ну System.Windows.Forms.Form а Bla.form - Это важно?

Viper
Артефакт VBStreets
Артефакт VBStreets
Аватара пользователя
 
Сообщения: 4394
Зарегистрирован: 12.04.2005 (Вт) 17:50
Откуда: Н.Новгород

Сообщение Viper » 30.05.2006 (Вт) 17:23

Про наследование. Наследуемая форма отображается в редакторе нормально за исключением того, что элементы управления унаследованные от родителя не могут быть передвинуты или удалены, что собственно логично.

Заодно возник вопрос: а что в VB.NET 2005 нет возможности стартовать Windows Application с процедуры Main?
Весь мир матрица, а мы в нем потоки байтов!

Ramzes
Скромный человек
Скромный человек
Аватара пользователя
 
Сообщения: 5004
Зарегистрирован: 12.04.2003 (Сб) 11:59
Откуда: Из гробницы :)

Сообщение Ramzes » 30.05.2006 (Вт) 17:30

!Viper! писал(а):Про наследование. Наследуемая форма отображается в редакторе нормально за исключением того, что элементы управления унаследованные от родителя не могут быть передвинуты или удалены, что собственно логично.

у меня они не отображаются :( видимо это связано с тем, что они были перенесены с FW1 говорит, что какой -то класс (форма родитель) обьявлен как abstract а не должен, хотя он не обьявлен...ну или я чего-то не допонял
!Viper! писал(а):Заодно возник вопрос: а что в VB.NET 2005 нет возможности стартовать Windows Application с процедуры Main?


Есть, если отключить галку "enable application framwork"

Viper
Артефакт VBStreets
Артефакт VBStreets
Аватара пользователя
 
Сообщения: 4394
Зарегистрирован: 12.04.2005 (Вт) 17:50
Откуда: Н.Новгород

Сообщение Viper » 30.05.2006 (Вт) 17:55

Ramzes писал(а):
Есть, если отключить галку "enable application framwork"


Слава аллаху! Хоть это оставили на выбор проггера!
Весь мир матрица, а мы в нем потоки байтов!

Терминатор
Продвинутый пользователь
Продвинутый пользователь
Аватара пользователя
 
Сообщения: 164
Зарегистрирован: 06.01.2005 (Чт) 12:57
Откуда: Москва

Сообщение Терминатор » 02.06.2006 (Пт) 14:15

Немного не в тему, но близко.
Почему в 2005 разрешили прямое обращение из одной формы к другой? И также возможно обращение из моделя непосредственно к элементам на любой форме, сколько бы форм не было, просто пишишь Form8.Chekbox12.Cheked, и всё? (как VB или VBA)
В 2003 это недопустимо, в 2005 это норма. Свои мысли и доводы - это понятно, где нить есть официальное обоснование и указание причин?
Hasta la vista, baby!

GSerg
Шаман
Шаман
 
Сообщения: 14286
Зарегистрирован: 14.12.2002 (Сб) 5:25
Откуда: Магадан

Сообщение GSerg » 02.06.2006 (Пт) 14:18

Как только вы переберёте все варианты решения и не найдёте нужного, тут же обнаружится решение, простое и очевидное для всех, кроме вас


Вернуться в Visual Basic .NET

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 102

    TopList