Модераторы: gambit, Partizan
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> DataGridView.Columns в дизайнере, не открываются для своего контрола 
:(
    Опции темы
Competitor
Дата 3.7.2009, 12:32 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 440
Регистрация: 23.3.2005
Где: Tula

Репутация: нет
Всего: -1



Привет всем,
Написал свой User control, который кроме прочего содержит DataGridView.
Нужно чтобы пользователь, когда добавляет на форму мой контрол, мог править колонки из этого грида.
Просто открыть свойство для грида в мой контрол не прокатило. Через дизайнер пользователь может менять свойства грида, но когда он щелкает по свойству Columns, получает ошибку Object reference not set to an instance of an onject

Код

public partial class GridViewPicker : UserControl
    {
        public DataGridView DataGridView1
        {
            get { return dataGridView1; }
            set { dataGridView1 = value; }
        }



Как решить проблему? 
PM MAIL WWW   Вверх
senalex
Дата 3.7.2009, 13:40 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 38
Регистрация: 6.5.2008

Репутация: 1
Всего: 1



Попробуй переопредели еще свойство Site вот так:

Код

public override ISite Site
        {
            get
            {
                return base.Site;
            }
            set
            {
                base.Site = value;
                if (value != null)
                {
                    INestedContainer nc = (INestedContainer)Site.GetService(typeof(INestedContainer));
                    if (nc != null)
                    {
                        nc.Add(dataGridView1, "DataGridView1");
                    }
                }
            }

PM MAIL   Вверх
Competitor
Дата 3.7.2009, 14:02 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 440
Регистрация: 23.3.2005
Где: Tula

Репутация: нет
Всего: -1



senalex, спасибо, работает.
А что это переопределение свойства оззначает? Это никак не скажется негативно на чем-либо?
PM MAIL WWW   Вверх
senalex
Дата 3.7.2009, 15:08 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 38
Регистрация: 6.5.2008

Репутация: 1
Всего: 1



нет, никак не скажется

вот инфа:
http://msdn.microsoft.com/ru-ru/library/sy...odel.isite.aspx
PM MAIL   Вверх
Competitor
Дата 3.7.2009, 16:23 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 440
Регистрация: 23.3.2005
Где: Tula

Репутация: нет
Всего: -1



добавил я это свойство, колонки то теперь можно добавлять через дизайнер, но только потом всё это даже не компилируется. Потому что если добавить колонку, дизайнер добавляет такой код:
Код

this.gridViewPicker1.Column1 = new System.Windows.Forms.DataGridViewTextBoxColumn();
this.gridViewPicker1.Column1.HeaderText = "Column1";
            this.gridViewPicker1.Column1.Name = "Column1";
            this.gridViewPicker1.Column1.ReadOnly = true;
            this.gridViewPicker1.DataGridView1.Columns.AddRange(new System.Windows.Forms.DataGridViewColumn[] {
            this.gridViewPicker1.Column1});

но gridViewPicker1 - это как раз мой контрол и никакой Column1 в нем разумеется нет. Так что Column1 оказывается необъявленной.
Есть идеи как можно поступить здесь?
PM MAIL WWW   Вверх
senalex
Дата 21.7.2009, 10:11 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 38
Регистрация: 6.5.2008

Репутация: 1
Всего: 1



Пометь свое свойство атрибутами:

[DesignerSerializationVisibility(DesignerSerializationVisibility.Content)]
[TypeConverter(typeof(DataGridView))]
[MergableProperty(false)]

Должно отработать как надо
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Прежде чем создать тему, посмотрите сюда:
mr.DUDA
THandle

Используйте теги [code=csharp][/code] для подсветки кода. Используйтe чекбокс "транслит" если у Вас нет русских шрифтов.
Что делать если Вам помогли, но отблагодарить помощника плюсом в репутацию Вы не можете(не хватает сообщений)? Пишите сюда, или отправляйте репорт. Поставим :)
Так же не забывайте отмечать свой вопрос решенным, если он таковым является :)


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, mr.DUDA, THandle.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Разработка Windows Forms | Следующая тема »


 




[ Время генерации скрипта: 0.0508 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.