Форум программистов, компьютерный форум, киберфорум
C# .NET
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 5.00/4: Рейтинг темы: голосов - 4, средняя оценка - 5.00
0 / 0 / 0
Регистрация: 06.07.2010
Сообщений: 5
.NET 2.x

Дизайнер VisualStudio 2005

06.07.2010, 15:05. Показов 842. Ответов 6
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Доброго времени суток!
Работаю с VisualStudio 2005. Столкнулся со следующей проблемой, если упростить, то ее можно описать так:
Есть UserControl со свойством Property1. В конструкторе ему присваивается значение "1".
Есть форма, которая содержит этот контрол.
Проблема в следующем: в дизайнере формы автоматически присваивается значение свойства Property1 в значение "1". Вопрос: почему? Ведь это свойство и так присваивается в конструкторе!

Привожу код:

UserControl1:
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
    public partial class UserControl1 : UserControl
    {
        protected string property1;
 
        public string Property1
        {
            get { return property1; }
            set { property1 = value; }
        }
 
        public UserControl1()
        {
            InitializeComponent();
            Property1 = "1";
        }
    }
Form1:
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
private void InitializeComponent()
        {
            this.userControl11 = new UserControl1();
            this.SuspendLayout();
            // 
            // userControl11
            // 
            this.userControl11.Location = new System.Drawing.Point(32, 22);
            this.userControl11.Name = "userControl11";
 
            // НЕ НУЖНО ЭТО! КАК УКАЗАТЬ ДИЗАЙНЕРУ НЕ ГЕНЕРИРОВАТЬ ЭТУ СТРОЧКУ?
            this.userControl11.Property1 = "1";
  
            this.userControl11.Size = new System.Drawing.Size(150, 150);
            this.userControl11.TabIndex = 0;
            // 
            // Form1
            // 
            ...
        }
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
06.07.2010, 15:05
Ответы с готовыми решениями:

DoubleClick в ListBox VisualStudio 2005 C#
мне нужно реализовать обработчик DoubleClick для ListBox в VisualStudio 2005 С#. проблема в том что средой мне предлагается только event...

VisualStudio .Net 2005
Скажите, для уястановкм VisualStudio .Net 2005 под WinXP нужен ли SP2?

VisualStudio 2005 - не компилируется проект из vs2012
Есть необходимость написать программу в vs2005, есть написанный модуль(класс) в vs2012(в vs2012 работает без проблем), подключаю эти файлы...

6
Padawan
 Аватар для Johnny_D
473 / 323 / 30
Регистрация: 30.01.2010
Сообщений: 1,841
06.07.2010, 15:23
Дизайнер генерит код с конструктора, при создании формы. В конструкторе он не должно присутствовать.
0
 Аватар для nio
6050 / 3460 / 336
Регистрация: 14.06.2009
Сообщений: 8,136
Записей в блоге: 2
06.07.2010, 17:01
Цитата Сообщение от Novichok11 Посмотреть сообщение
// НЕ НУЖНО ЭТО! КАК УКАЗАТЬ ДИЗАЙНЕРУ НЕ ГЕНЕРИРОВАТЬ ЭТУ СТРОЧКУ?
this.userControl11.Property1 = "1";
ее можно просто удалить, или присвоить нужное значение.
0
0 / 0 / 0
Регистрация: 06.07.2010
Сообщений: 5
06.07.2010, 18:24  [ТС]
Удалить то можно, но не удалять же каждый раз, когда генерится код.
Попробую объяснить, чем мне это мешает. На самом деле, Property1 присваивается конечно же не "1", а значение, завязанное на папке, из которой запущено приложение. Соответственно, если удалить проблемную строчку, то все, в порядке- этот параметр содержит папку, из которой запущен exe. А вот когда студия генерит код, то свойство, естественно, содержит папку студии. А инициализирую в конструкторе, чтобы было проще пользоваться контролом- не надо лишних телодвижений.
Я смотрю в сторону аттрибутов, возможно среди них есть подходящий, который укажет, что это свойство не надо трогать в дизайнере формы. Ведь в других контролах из базовых библиотек не все свойства инициализируются непосредственно в дизайнере родительской формы. Кто знает, подскажите, правильной дорогой иду?

Добавлено через 4 минуты
В конструкторе он не должно присутствовать.
Если он не будет присутствовать в конструкторе, тогда значением Property1 будет null
0
 Аватар для nio
6050 / 3460 / 336
Регистрация: 14.06.2009
Сообщений: 8,136
Записей в блоге: 2
06.07.2010, 20:17
Цитата Сообщение от Novichok11 Посмотреть сообщение
А инициализирую в конструкторе
нужно сделать конструктор для контрола, в который передается параметр, который в свою очередь задаст значение свойству.
0
 Аватар для Mikant
1322 / 995 / 127
Регистрация: 08.12.2009
Сообщений: 1,299
06.07.2010, 22:31
хороший вопрос. мне понравился)
а вот и ответ. пока стоит дефолтное значение в Designer.cs строчка не появится

C#
1
2
3
4
5
6
7
        protected string _myProperty = "жепьжажа"; // это так же как и в конструкторе
 
        [DefaultValue("жепьжажа")]
        public string MyProperty {
            get { return _myProperty; }
            set { _myProperty = value; }
        }
ps. есть правда другой способ смотри DesignerSerializationVisibilityAttribute
2
0 / 0 / 0
Регистрация: 06.07.2010
Сообщений: 5
07.07.2010, 06:46  [ТС]
Mikant, рад что Вам понравился мой вопрос)

И особая благодарность за отличный ответ- прям в точку!
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
07.07.2010, 06:46
Помогаю со студенческими работами здесь

Раелизовать медиаплеер на visualstudio желательно 2005
Ребятки, помогите, нужно реализовать медиаплеер на visualstudio желательно 2005. Хочется, чтобы можно было добавлять несколько песен,...

SELECT * FROM tabl WHERE (ДатаВызова Between #21/04/2005# And #01/07/2005#); не работает
Ни кто не сталкивался с подобным глюкам. Делаю в ADoDB выборку из Recordset по дате SELECT * FROM tabl WHERE (ДатаВызова Between...

Подключение к SQL server 2005 из vs 2005
Добрый день. Пытаюсь сделать клиент с использованием ado.net для подключение к БД. На виртуальной машине установлен WinXp sp3 x86, на него...

UI-дизайнер (дизайнер интерфейсов)
Ищем молодого розовощёкого дизайнера или дизайнершу, рвущихся проектировать интерфейсы, причём для игр, причём для сложных: никаких...

Напечатайте календарь заданного месяца 2005 года, зная, что 1 января 2005 года — суббота
не могу понять что вообще делать в программе. Условие звучит так: Напечатайте календарь заданного месяца 2005 года, зная, что 1 января...


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

Или воспользуйтесь поиском по форуму:
7
Ответ Создать тему
Новые блоги и статьи
Мысли в слух. Про "навсегда".
kumehtar 16.04.2026
Подумалось тут, что наверное очень глупо использовать во всяких своих установках понятие "навсегда". Это очень сильное понятие, и я только начинаю понимать край его смысла, не смотря на то что давно. . .
My Business CRM
MaGz GoLd 16.04.2026
Всем привет, недавно возникла потребность создать CRM, для личных нужд. Собственно программа предоставляет из себя базу данных клиентов, в которой можно фиксировать звонки, стадии сделки, а также. . .
Знаешь почему 90% людей редко бывают счастливыми?
kumehtar 14.04.2026
Потому что они ждут. Ждут выходных, ждут отпуска, ждут удачного момента. . . а удачный момент так и не приходит.
Фиксация колонок в отчете СКД
Maks 14.04.2026
Фиксация колонок в СКД отчета типа Таблица. Задача: зафиксировать три левых колонки в отчете. Процедура ПриКомпоновкеРезультата(ДокументРезультат, ДанныеРасшифровки, СтандартнаяОбработка) / / . . .
Настройки VS Code
Loafer 13.04.2026
{ "cmake. configureOnOpen": false, "diffEditor. ignoreTrimWhitespace": true, "editor. guides. bracketPairs": "active", "extensions. ignoreRecommendations": true, . . .
Оптимизация кода на разграничение прав доступа к элементам формы
Maks 13.04.2026
Алгоритм из решения ниже реализован на нетиповом документе, разработанного в конфигурации КА2. Задачи, как таковой, поставлено не было, проделанное ниже исключительно моя инициатива. Было так:. . .
Контроль заполнения и очистка дат в зависимости от значения перечислений
Maks 12.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "ПланированиеПерсонала", разработанного в конфигурации КА2. Задача: реализовать контроль корректности заполнения дат назначения. . .
Архитектура слоя интернета для сервера-слоя.
Hrethgir 11.04.2026
В продолжение https:/ / www. cyberforum. ru/ blogs/ 223907/ 10860. html Знаешь что я подумал? Раз мы все источники пишем в голове ветки, то ничего не мешает добавить в голову такой источник, который сам. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru