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

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> UserControl и дизайнер, странная ошибка... 
:(
    Опции темы
Kefir
Дата 28.6.2007, 15:24 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


«Hakuna Matata»
***


Профиль
Группа: Комодератор
Сообщений: 1878
Регистрация: 25.1.2003
Где: Tampere, Suomi

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



в общем создал свой контрол - четыре кнопки для показа списка и две кнопки - вверх и вниз (для прокрутки). скриншот в аттаче для понимания как он выглядит.

проблема в том, что из-за этого моего творения дизайнер отказывается работать. говорит очень странную фразу:
Цитата
Warning    1    ResX file Object of type 'Playground3.ICatalogueItem[]' cannot be converted to type 'Playground3.ICatalogueItem[]'. Line 129, position 5. cannot be parsed.  129    0    

в общем я, чесслово, не понимаю что ему не нравится.
в Form1.resx конец такой:
Цитата

  <data name="catalogue1.Items" mimetype="application/x-microsoft.net.object.binary.base64">
    <value>
        AAEAAAD/////AQAAAAAAAAAMAgAAAEJQbGF5Z3JvdW5kMywgVmVyc2lvbj0xLjAuMC4wLCBDdWx0dXJl
        PW5ldXRyYWwsIFB1YmxpY0tleVRva2VuPW51bGwEAQAAAIMBU3lzdGVtLkNvbGxlY3Rpb25zLkdlbmVy
        aWMuTGlzdGAxW1tQbGF5Z3JvdW5kMy5JQ2F0YWxvZ3VlSXRlbSwgUGxheWdyb3VuZDMsIFZlcnNpb249
        MS4wLjAuMCwgQ3VsdHVyZT1uZXV0cmFsLCBQdWJsaWNLZXlUb2tlbj1udWxsXV0DAAAABl9pdGVtcwVf
        c2l6ZQhfdmVyc2lvbgQAABxQbGF5Z3JvdW5kMy5JQ2F0YWxvZ3VlSXRlbVtdAgAAAAgICQMAAAAAAAAA
        AAAAAAcDAAAAAAEAAAAAAAAABBpQbGF5Z3JvdW5kMy5JQ2F0YWxvZ3VlSXRlbQIAAAAL
</value>
  </data>
</root>

(строка 129 выделена красным цветом). То есть ни черта не понятно. Сам я это место не трогал.

код юзер контрола:
Код

    public partial class Catalogue : UserControl
    {
        // итемы, список которых надо показывать.
        private List<ICatalogueItem> _Items;

        // проперти итемов
        public List<ICatalogueItem> Items
        {
            get { return this._Items; }
            set
            {
                this._Items = value;
                // если итемы одновились, то надо и сам контрол обновить
                this._Fill();
            }
        }

        // сколько рядов итемов может быть, если в каждом ряду по 2 итема (см. скриншот)
        public int Rows
        {
            get { return this.Items.Count / 2 + this.Items.Count % 2; }
        }

        // на каком ряду мы сейчас нахрдимся (для прокрутки)
        private int _RowPosition;
        public int RowPosition
        {
            get { return this._RowPosition; }
            set
            {
                if (value >= 0 && value < this.Rows)
                {
                    this._RowPosition = value;
                    this._Fill();
                }
            }
        }

        // заполняем кнопки контентом, с учётом того на каком ряду мы сейчас находимся
        private void _Fill()
        {
            // if we have a value for button1
            if (this.Items.Count > this.RowPosition * 2)
            {
                this.button1.Text = this.Items[this.RowPosition * 2].CatalogueText;
                this.button1.Tag = this.Items[this.RowPosition * 2].CatalogueTag;
                this.button1.Visible = true;
            }
            else
            {
                this.button1.Text = "";
                this.button1.Tag = null;
                this.button1.Visible = false;
            }

            // if we have a value for button2
            if (this.Items.Count > this.RowPosition * 2 + 1)
            {
                this.button2.Text = this.Items[this.RowPosition * 2 + 1].CatalogueText;
                this.button2.Tag = this.Items[this.RowPosition * 2 + 1].CatalogueTag;
                this.button2.Visible = true;
            }
            else
            {
                this.button2.Text = "";
                this.button2.Tag = null;
                this.button2.Visible = false;
            }

            // if we have a value for button3
            if (this.Items.Count > this.RowPosition * 2 + 2)
            {
                this.button3.Text = this.Items[this.RowPosition * 2 + 2].CatalogueText;
                this.button3.Tag = this.Items[this.RowPosition * 2 + 2].CatalogueTag;
                this.button3.Visible = true;
            }
            else
            {
                this.button3.Text = "";
                this.button3.Tag = null;
                this.button3.Visible = false;
            }

            // if we have a value for button4
            if (this.Items.Count > this.RowPosition * 2 + 3)
            {
                this.button4.Text = this.Items[this.RowPosition * 2 + 3].CatalogueText;
                this.button4.Tag = this.Items[this.RowPosition * 2 + 3].CatalogueTag;
                this.button4.Visible = true;
            }
            else
            {
                this.button4.Text = "";
                this.button4.Tag = null;
                this.button4.Visible = false;
            }
        }

        public Catalogue()
        {
            InitializeComponent();

            this.Items = new List<ICatalogueItem>();
            this.RowPosition = 0;
        }
        private void buttonUp_Click(object sender, EventArgs e)
        {
            this.RowPosition -= 1;
        }

        private void buttonDown_Click(object sender, EventArgs e)
        {
            this.RowPosition += 1;
        }
    }

код ICatalogueItem:

Код

    public interface ICatalogueItem
    {
        string CatalogueText
        {
            get;
        }

        object CatalogueTag
        {
            get;
        }
    }


в общем не понимаю я в чём проблема... что дизайнеру не нравится?..

Это сообщение отредактировал(а) Kefir - 28.6.2007, 15:24

Присоединённый файл ( Кол-во скачиваний: 14 )
Присоединённый файл  control.jpg 13,30 Kb
PM MAIL WWW Skype   Вверх
HalkaR
Дата 28.6.2007, 17:58 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Пуфыстый назгул
****


Профиль
Группа: Экс. модератор
Сообщений: 2132
Регистрация: 8.12.2002
Где: В Москве

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



Kefir, закрой форму, пересобери проект и открой сново smile
PM MAIL   Вверх
Kefir
Дата 28.6.2007, 18:41 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


«Hakuna Matata»
***


Профиль
Группа: Комодератор
Сообщений: 1878
Регистрация: 25.1.2003
Где: Tampere, Suomi

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



ыыы... в общем странно. мои действия по пунктам:
1. закрываю форму, делаю ребилд, открываю форму - нет эффекта.
2. закрываю студию, открываю студию, открываю форму - пишет
Цитата

Unable to load type System.Collections.Generic.List`1[[Playground3.ICatalogueItem, Playground3, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null]] required for deserialization. 

3. удаляю нахрен всё про мой контрол из resx и InitializeComponent (то биш вручную удаляю с формы мой контрол). добавляю мой контрол, делаю билд, нажимаю дебаг - и опять в дизайнере: 
Цитата

Warning    1    ResX file Object of type 'Playground3.ICatalogueItem[]' cannot be converted to type 'Playground3.ICatalogueItem[]'. Line 129, position 5. cannot be parsed.  129    0

4. закрываю студию, открываю студию. снова
Цитата

Unable to load type System.Collections.Generic.List`1[[Playground3.ICatalogueItem, Playground3, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null]] required for deserialization. 


что за шутки блин?..

Добавлено через 2 минуты и 33 секунды
последовательность ясна - сразу после билда появляется 
Цитата

Warning    1    ResX file Object of type 'Playground3.ICatalogueItem[]' cannot be converted to type 'Playground3.ICatalogueItem[]'. Line 129, position 5. cannot be parsed.  129    0

а после рестарта студии
Цитата

Unable to load type System.Collections.Generic.List`1[[Playground3.ICatalogueItem, Playground3, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null]] required for deserialization. 


Это сообщение отредактировал(а) Kefir - 28.6.2007, 18:42
PM MAIL WWW Skype   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Прежде чем создать тему, посмотрите сюда:
mr.DUDA
THandle

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


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

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


 




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


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

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