Visual Basic, .NET, ASP, VBScript
 

   
   
     

Форум - .NET

Страница: 1 | 2 |

 

  Вопрос: Модификация PropertyGrid Добавлено: 06.11.06 15:49  

Автор вопроса:  danser | ICQ: 299287824 

Ответить

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

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



Вопросов: 58
Ответов: 4255
 Профиль | | #16 Добавлено: 17.11.06 18:54
Да почему же под С#? Как мне кажется.. из названия книги явно понятно о каком из языков идет речь!
Да и собственно разницы никакой нет.. С# или VB.. суть одна и та же..

Ответить

Номер ответа: 17
Автор ответа:
 danser



ICQ: 299287824 

Вопросов: 76
Ответов: 209
 Профиль | | #17 Добавлено: 20.11.06 09:53
ОК Спасибо еще раз, большие планы по использованию PropertyGrid - поэтому нужно будет эту книгу все ж достать...

Ответить

Номер ответа: 18
Автор ответа:
 danser



ICQ: 299287824 

Вопросов: 76
Ответов: 209
 Профиль | | #18 Добавлено: 21.11.06 17:45
Вот электронний вариант:
http://www.zipsites.ru/books/konnell_razrabotka_microsoft_net/
...Это кому интересно.

Читал...то что надо...правда автор как то мутно подает материал, даже в сравнение не идет с Петрусос'ом.
По основам у меня - Евангелос Петрусос "Ефективная работа: VB .NET" книга суперовая - действительно эфективно...

Ответить

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



Вопросов: 58
Ответов: 4255
 Профиль | | #19 Добавлено: 21.11.06 19:59
автор как то мутно подает материал, даже в сравнение не идет с Петрусос'ом

Ну не скажи.. материал изложен вполне понятно и доступно, с примерами кода и комментариями к нему. И что самое ценное - это приводит некоторые интересные фишки, о которых я больше ни в одной книге не читал.. А это (имхо) - дорогого стоит..

Ответить

Номер ответа: 20
Автор ответа:
 danser



ICQ: 299287824 

Вопросов: 76
Ответов: 209
 Профиль | | #20 Добавлено: 23.11.06 12:37
Не отображаются в PropertyGrid составние значения свойства...:(
Клас Example имеет свойство s типа Base которое я хочу отобразить в PropertyGrid.
Типа при запуске приложения в PropertyGrid возле свойства s - плюсик появляєтся но кликаешь по нему он просто исчезает и свойство "не откривается":(
Для свойства s написан конвертор типа ConverterBase редактирующий составние значения этого свойства.

В этом направлении у меня первие шаги, может неправильний конвертор типов которий я взял с книги...
Ниже привожу код загрузки основной форми и код класов Example,Base,BaseConvertor.

...
Private Sub Form1_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles MyBase.Load
        Dim obj As New Example
        Me.PropertyGrid1.SelectedObject = obj
End Sub
...


Imports System.ComponentModel
<Serializable()> _
Public Class Example
    Private s_ As New Base
    <;DesignerSerializationVisibility(DesignerSerializationVisibility.Content),TypeConverter(GetType(BaseConvert))> _
     Public Property S() As Base
        Get
            S = s_
        End Get
        Set(ByVal Value As Base)
            s_ = Value
        End Set
    End Property
End Class


Imports System.ComponentModel
Imports System.Windows.Forms
<Serializable()> _
Public Class Base
    Protected ID_ As Integer
    Protected IsBlocking_ As Boolean
    <;Description("ID об'єкта";)> _
        Public Property ID() As Integer
        Get
            ID = Me.ID_
        End Get
        Set(ByVal Value As Integer)
            Me.ID_ = Value
        End Set
    End Property
    <;Description("Об'єкт блоковано";)> _
        Public Property Блокований() As Boolean
        Get
            Me.Блокований = Me.IsBlocking_
        End Get
        Set(ByVal Value As Boolean)
            Me.IsBlocking_ = Value
        End Set
    End Property
    Overrides Function ToString() As String
        Return (";(NameProperty)";)
    End Function
End Class

Public Class BaseConvert
    Inherits TypeConverter
    Public Overloads Overrides Function GetPropertiesSupported(ByVal context As ITypeDescriptorContext) As Boolean
        Return True
    End Function
    Public Overloads Overrides Function CanConvertFrom(ByVal context As ITypeDescriptorContext, ByVal sourceType As Type) As Boolean
        If sourceType.Equals(GetType(String)) = True Then
            Return True
        Else
            MsgBox("sourceType<>String";)
        End If
    End Function
End Class

Ответить

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



Вопросов: 58
Ответов: 4255
 Профиль | | #21 Добавлено: 23.11.06 22:34
Не отображаются в PropertyGrid составние значения свойства...:(

лжете батенька.. все открывается.. читай лучше и разбирайся где накосячил.. я делал подобные вещи несколько раз..

Ответить

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



Вопросов: 58
Ответов: 4255
 Профиль | | #22 Добавлено: 23.11.06 23:21
Public Property Блокований() As Boolean
        Get
            Me.Блокований = Me.IsBlocking_
        End Get
        Set(ByVal Value As Boolean)
            Me.IsBlocking_ = Value
        End Set
    End Property


Тебя кто учил так Get писать???

Ответить

Номер ответа: 23
Автор ответа:
 danser



ICQ: 299287824 

Вопросов: 76
Ответов: 209
 Профиль | | #23 Добавлено: 24.11.06 10:16
лжете батенька..

Я никогда не лгу...
все открывается.. читай лучше и разбирайся где накосячил.. я делал подобные вещи несколько раз.

Вот мне от нечего делать захотелось позадавать вопросы?
Я ж говорю при запуке плюсик появляется, кликаешь по нему он исчезает... Может глюк студии может я "где накосячил" но так если вы лучше ориентируетесь в этом вопросе то укажите где я "накосясчил"... Студия 2003, код которий писал виложил, сам знаю что должно работать (по логике) но...
Тебя кто учил так Get писать???

Смотри на первой странице этого топика: про свойства кирилицей...это влияет на то что свойство не отображается?

Ответить

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



Вопросов: 58
Ответов: 4255
 Профиль | | #24 Добавлено: 24.11.06 19:49
Уважаемый!
Если ВНИМАТЕЛЬНО читали рекомендованную мною книгу, то Вы не могли не заметить тот факт, что для корректного отображения составного свойства достаточно использовать в качестве конвертера типов объект ExpandableObjectConverter. Причем наличие свойств на русском языке не играет абсолютно никакой роли.
Вот примерно так его можно юзать:
Imports System.ComponentModel

''' <summary>
''' Expandable Property Example
''' </summary>
''' <remarks>Add to form PropertyGrid</remarks>
Public Class Form1

    Private Sub Form1_Load(ByVal sender As System.Object, _
                           ByVal e As System.EventArgs) Handles MyBase.Load

        Dim Doc As New DocumentHost()

        With Doc.Документ
            .Название = "Гражданин VBNET"
            .Серия = "ХХII"
            .Номер = "22566789"
        End With

        PropertyGrid1.SelectedObject = Doc
    End Sub

End Class

Public Class DocumentHost

    Private _document As New Document
    Public Property Документ() As Document
        Get
            Return _document
        End Get
        Set(ByVal Value As Document)
            _document = Value
        End Set
    End Property
End Class


<TypeConverter(GetType(ExpandableObjectConverter))> _
Public Class Document

    Private _name As String = String.Empty
    Public Property Название() As String
        Get
            Return _name
        End Get
        Set(ByVal Value As String)
            _name = Value
        End Set
    End Property

    Private _series As String = String.Empty
    Public Property Серия() As String
        Get
            Return _series
        End Get
        Set(ByVal Value As String)
            _series = Value
        End Set
    End Property

    Private _number As String = String.Empty
    Public Property Номер() As String
        Get
            Return _number
        End Get
        Set(ByVal Value As String)
            _number = Value
        End Set
    End Property

    Public Overrides Function ToString() As String
        Return ("Документ";)
    End Function

End Class


Если же Вас интересует непосредственно конвертер типов, то за ... ммм... эээ.. ставишими традиционными на этом форуме, каких нибудь несчастных 20 WMZ я с радостью напишу для Вас полноценный конвертер типов, с поддержкой Default Value, Reset и прочих приятственных фишечек для вашего составного свойства. Либо что, гораздо дешевле, надо 3-5 раз прочитать книгу. Если остануться непонятные вопросы, то надо повторить чтение.. Причем главы, относящиеся к дизайнерам, читать рекомендую особенно внимательно!

Ответить

Номер ответа: 25
Автор ответа:
 danser



ICQ: 299287824 

Вопросов: 76
Ответов: 209
 Профиль | | #25 Добавлено: 24.11.06 21:29
Причем наличие свойств на русском языке не играет абсолютно никакой роли.

Я так и подумал.Переспросил так как не понял почему Ты спросил...
<TypeConverter(GetType(ExpandableObjectConverter))> _

Вот чего у меня нет...в примере.Это я и хотел узнать.Я книгу только начал читать. Читаю сачас главу про конвертори и редактори... и понемногу паралельно сразу питаюсь пробы(и)вать примеры... вот с одним, с твоей помощь, разобрался, спасибо помог...
...я с радостью напишу для Вас полноценный конвертер типов, с поддержкой Default Value, Reset и прочих приятственных фишечек для вашего составного свойства.

Мне готовое решение не нужно даже если б ты его делал бесплатно...спасибо.Я просто питаюсь разобраться... извини если надоедаю.
Еще раз спасибо.

Ответить

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



Вопросов: 58
Ответов: 4255
 Профиль | | #26 Добавлено: 24.11.06 22:05
надо 3-5 раз прочитать книгу. Если остануться непонятные вопросы, то надо повторить чтение..

Я не зря это написал... лично до меня с первого раза не дохоодит.. приходится перечитывать по нескольку раз отдельные главы, пока не осознаешь полностью тему...

Ответить

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



Вопросов: 58
Ответов: 4255
 Профиль | | #27 Добавлено: 25.11.06 01:02
Переспросил так как не понял почему Ты спросил...

А ты сравни мою процедуру Get и свою, и найди отличие.. тогда все станет на свои места..

Ответить

Номер ответа: 28
Автор ответа:
 danser



ICQ: 299287824 

Вопросов: 76
Ответов: 209
 Профиль | | #28 Добавлено: 27.11.06 09:11
Ок. Я смотрел когда писал последний свой ответ, твой вариант, чувствую, как то лучше. Может потому что нет присвоения названию (кирилицей).

Ответить

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



Вопросов: 58
Ответов: 4255
 Профиль | | #29 Добавлено: 27.11.06 14:07
В процедуре Get, как правило, присвоения вообще нет! Там используют Return для возврата значения локальной переменной..

Ответить

Страница: 1 | 2 |

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



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