Форум программистов, компьютерный форум, киберфорум
Visual Basic .NET
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.60/5: Рейтинг темы: голосов - 5, средняя оценка - 4.60
200 / 215 / 87
Регистрация: 21.04.2013
Сообщений: 403
1

Как правильно сделать свое свойство-структуру

18.06.2014, 17:10. Просмотров 912. Ответов 4
Метки нет (Все метки)

Доброго времени суток.
Как правильно сделать свое свойство-структуру? Типа Location, Size и т.п.
Я делаю так:
vb.net
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
Public Class UC
    Inherits UserControl
 
    Sub New()
        _Prop = New Struc With {.p1 = 1, .p2 = 2}
    End Sub
 
    Private _Prop As Struc
    Public Property Prop As Struc
        Get
            Return _Prop
        End Get
        Set(ByVal value As Struc)
            _Prop = value
        End Set
    End Property
End Class
 
Public Structure Struc
    Dim p1 As Integer
    Dim p2 As Integer
End Structure
Работает, но в свойствах вместо конкретных данных получается, как на картинке.
А хотелось бы, чтобы было как у свойства Size.
0
Миниатюры
Как правильно сделать свое свойство-структуру  
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
18.06.2014, 17:10
Ответы с готовыми решениями:

Как правильно сделать структуру сайта
Пожалуйста подскажите хочу сделать сайт по структуре очень похожий на http://vopros-remont.ru/ /...

Как правильно сделать структуру в Laravel не нарушая MVC?
Добрый день.Первый раз работаю с Laravel,читаю много информации в Интернете, и меня смущает,то в...

Пытаюсь правильно сделать своё приложение RestFull
Учусь ASP.NET MVC 5. Пишу первое приложение. Домашняя бухгалтерия. Надо забить список товаров,...

Как можно добавить свое свойство (переменную) к стандартному объекту?
На форме есть несколько TMemo. На все эти текстовые объекты стоит один и тот-же обработчик...

4
Почетный модератор
21271 / 9006 / 1080
Регистрация: 11.04.2010
Сообщений: 11,015
18.06.2014, 18:18 2
Petr_S, попробуйте переопределить метод ToString в структуре, пока навскидку только это
0
Администратор
Эксперт .NET
8863 / 4249 / 743
Регистрация: 17.04.2012
Сообщений: 9,068
Записей в блоге: 14
18.06.2014, 22:15 3
vb.net
1
2
3
4
5
6
7
8
9
    Private _Prop As Struc
    Public Property Prop As Struc
        Get
            Return _Prop
        End Get
        Set(ByVal value As Struc)
            _Prop = value
        End Set
    End Property
Подобный код сгенерирует компилятор, если вы напишите лишь одну строку
vb.net
1
Public Property Prop As Struc
Petr_S, я так и не понял, что за скрин вы привели? Здесь другой тип - вы хотите такой же вывод?
Тогда, по Памирычу
vb.net
1
2
3
4
5
6
7
8
9
10
11
12
13
14
Module MainModule
    Sub Main()
        Dim s = New MyStructure With {.x = 20, .y = -4}
        Console.WriteLine(s)  ' 20; -4
    End Sub
 
    Structure MyStructure
        Dim x As Integer
        Dim y As Integer
        Public Overrides Function ToString() As String
            Return String.Format("{0}; {1}", x, y)
        End Function
    End Structure
End Module
0
200 / 215 / 87
Регистрация: 21.04.2013
Сообщений: 403
18.06.2014, 22:56  [ТС] 4
Цитата Сообщение от tezaurismosis Посмотреть сообщение
я так и не понял, что за скрин вы привели?
Я хочу сделать так, чтобы я мог задавать значения своего свойства в окне свойств так, как это можно делать, например, для свойства .Size. Т.е. задавать два значения, разделенных точкой с запятой. А не только выводить эти значения.
0
Администратор
Эксперт .NET
8863 / 4249 / 743
Регистрация: 17.04.2012
Сообщений: 9,068
Записей в блоге: 14
18.06.2014, 23:28 5
Petr_S, тогда интереснее - нужно поиграться с атрибутами из System.Windows.ComponentModel
К свойствам приписывают атрибуты для придания им определённого поведения в редакторе.
Вот код свойства Size у Form
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
   [DesignerSerializationVisibility(DesignerSerializationVisibility.Hidden)]
    [Localizable(false)]
    public new Size Size
    {
      get
      {
        return base.Size;
      }
      set
      {
        base.Size = value;
      }
    }
и у Control
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
    [Localizable(true)]
    [SRCategory("CatLayout")]
    [SRDescription("ControlSizeDescr")]
    public Size Size
    {
      get
      {
        return new Size(this.width, this.height);
      }
      set
      {
        this.SetBounds(this.x, this.y, value.Width, value.Height, BoundsSpecified.Size);
      }
    }
Предлагаю установить dotPeek и хорошо всё это исследовать.
2
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
18.06.2014, 23:28

Заказываю контрольные, курсовые, дипломные и любые другие студенческие работы здесь.

Какие теги HTML5 и как правильно нужно их использовать, чтобы сделать оздать нужную структуру сайта
Я читал про новые теги HTML5, но до конца так и не смог разобраться. На разных сайтах по-разному...

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

Как правильно организовать своё обучение
Добрый вечер, дорогие) Всегда считал себя довольно грамотным человеком в обращении с...

Как правильно передать указатель на структуру, и правильно ее использовать
Я планирую сделать сортировку, но компилятор начал ругаться "Нет существует подходящей функции...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
5
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2021, vBulletin Solutions, Inc.