Форум программистов, компьютерный форум, киберфорум
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. Показов 830. Ответов 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
Ответ Создать тему
Новые блоги и статьи
SDL3 для Web (WebAssembly): Работа со звуком через SDL3_mixer
8Observer8 08.02.2026
Содержание блога Пошагово создадим проект для загрузки звукового файла и воспроизведения звука с помощью библиотеки SDL3_mixer. Звук будет воспроизводиться по клику мышки по холсту на Desktop и по. . .
SDL3 для Web (WebAssembly): Основы отладки веб-приложений на SDL3 по USB и Wi-Fi, запущенных в браузере мобильных устройств
8Observer8 07.02.2026
Содержание блога Браузер Chrome имеет средства для отладки мобильных веб-приложений по USB. В этой пошаговой инструкции ограничимся работой с консолью. Вывод в консоль - это часть процесса. . .
SDL3 для Web (WebAssembly): Обработчик клика мыши в браузере ПК и касания экрана в браузере на мобильном устройстве
8Observer8 02.02.2026
Содержание блога Для начала пошагово создадим рабочий пример для подготовки к экспериментам в браузере ПК и в браузере мобильного устройства. Потом напишем обработчик клика мыши и обработчик. . .
Философия технологии
iceja 01.02.2026
На мой взгляд у человека в технических проектах остается роль генерального директора. Все остальное нейронки делают уже лучше человека. Они не могут нести предпринимательские риски, не могут. . .
SDL3 для Web (WebAssembly): Вывод текста со шрифтом TTF с помощью SDL3_ttf
8Observer8 01.02.2026
Содержание блога В этой пошаговой инструкции создадим с нуля веб-приложение, которое выводит текст в окне браузера. Запустим на Android на локальном сервере. Загрузим Release на бесплатный. . .
SDL3 для Web (WebAssembly): Сборка C/C++ проекта из консоли
8Observer8 30.01.2026
Содержание блога Если вы откроете примеры для начинающих на официальном репозитории SDL3 в папке: examples, то вы увидите, что все примеры используют следующие четыре обязательные функции, а. . .
SDL3 для Web (WebAssembly): Установка Emscripten SDK (emsdk) и CMake для сборки C и C++ приложений в Wasm
8Observer8 30.01.2026
Содержание блога Для того чтобы скачать Emscripten SDK (emsdk) необходимо сначало скачать и уставить Git: Install for Windows. Следуйте стандартной процедуре установки Git через установщик. . . .
SDL3 для Android: Подключение Box2D v3, физика и отрисовка коллайдеров
8Observer8 29.01.2026
Содержание блога Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами. Версия v3 была полностью переписана на Си, в. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru