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

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> дизайнеру ненравится мой UserControl 
:(
    Опции темы
chudak
Дата 8.2.2010, 11:52 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


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

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



Вообщем написал компонент, работает нормально, на форму кидается из тулбокса, находится в dll.
Проблема заключается вот в чем! Первый раз кидаю компонент на форму, он отображается нормально, в пропертесе нормально настраиваю его свойства, билдю, работает, могу второй раз и третий и может пять раз с дизайнера поменять его свойства, всё впорядке, но в один прекрасный момент дизайнер показывает мне вот такую картину (рис.1)
какой диагноз поставить???

код дизайнера:
Код

 private void InitializeComponent()
        {
            System.ComponentModel.ComponentResourceManager resources = new System.ComponentModel.ComponentResourceManager(typeof(Form1));
            
            this.myGrid2 = new CollectionComponents.MyGrid();
            this.SuspendLayout();
           
            // 
            // myGrid2
            // 
            this.myGrid2._columns = ((System.Collections.Generic.List<CollectionComponents.myGridDataColumns>)(resources.GetObject("myGrid2._columns")));
            this.myGrid2._dataPosition = CollectionComponents.MyGrid.tp.left;
            this.myGrid2._fieldBackgroundColor = System.Drawing.Color.LightBlue;
            this.myGrid2._fieldPosition = CollectionComponents.MyGrid.tp.left;
            this.myGrid2._heightRow = 20;
            this.myGrid2._titleBackgroundColor = System.Drawing.Color.LightBlue;
            this.myGrid2._titleBackgroundImage = null;
            this.myGrid2._titleFont = new System.Drawing.Font("Tahoma", 10F);
            this.myGrid2._titlePosition = CollectionComponents.MyGrid.tp.left;
            this.myGrid2._titleString = "Название таблицы";
            this.myGrid2._titleTransfer = true;
            this.myGrid2.BackColor = System.Drawing.SystemColors.GradientInactiveCaption;
            this.myGrid2.Location = new System.Drawing.Point(11, 8);
            this.myGrid2.Name = "myGrid2";
            this.myGrid2.Size = new System.Drawing.Size(595, 340);
            this.myGrid2.TabIndex = 0;
            // 
            // Form1
            // 
            this.ClientSize = new System.Drawing.Size(617, 357);
            this.Controls.Add(this.myGrid2);
            this.Name = "Form1";
            this.ResumeLayout(false);

        }

        #endregion

       
        private CollectionComponents.MyGrid myGrid2;


код класса неконвертируемого объекта:
Код

[Serializable]
    public class myGridDataColumns
    {
        string name = "Поле 1";
        string text = "Без названия";
        enType type = enType.TextBox;
        Color color = Color.Black;
        Font font = new Font(new FontFamily("Tahoma"), 10.0f);
        int width = 100;
        bool transfer = false;

        /// <summary>
        /// тип поля
        /// </summary>
        public enType _type
        {
            get { return type; }
            set { type = value; }
        }
        /// <summary>
        /// Цвет текста
        /// </summary>
        public Color _color
        {
            get { return color; }
            set { color = value; }
        }
        /// <summary>
        /// свойства текста
        /// </summary>
        public Font _font
        {
            get { return font; }
            set { font = value; }
        }
        /// <summary>
        /// ширина поля
        /// </summary>
        public int _width
        {
            get { return width; }
            set { width = value; }
        }
        /// <summary>
        /// переносить или нет
        /// </summary>
        public bool _transfer
        {
            get { return transfer; }
            set { transfer = value; }
        }
        /// <summary>
        /// название поля
        /// </summary>
        public string _text
        {
            get { return text; }
            set { text = value; }
        }
        /// <summary>
        /// имя поля
        /// </summary>
        public string _name
        {
            get { return name; }
            set { name = value; }
        }

        public override string ToString()
        {
            return name;
        }
        //КОНСТРУКТОРЫ
       public myGridDataColumns() { }

        public myGridDataColumns(enType type, Color color, Font font, int width, bool transfer)
        {
            this.type = type;
            this.color = color;
            this.font = font;
            this.width = width;
            this.transfer = transfer;
        }

        // ЕНУМЕРАТОРЫ
        public enum enType
        {
            None = 0,
            TextBox,
            ComboBox,
            CheckBox,
            Button,
            PictureBox
        }
    }


спасибо за внимание!!!


плюс к тому он стал сам удалять положеные мной компоненты на форму. раза три запускался нормально, на четвертый запускаю, говорит что такая переменная не определена в данном контексте, иду в дизайнет, компонента нет, смотрю в текст дизайнера, нету и следа от компонента(только объявление от компанента остается), ни создания, ни свойств его нет!!!

Это сообщение отредактировал(а) chudak - 10.2.2010, 13:15

Присоединённый файл ( Кол-во скачиваний: 42 )
Присоединённый файл  1.GIF 21,46 Kb
PM MAIL   Вверх
ДобренькийПапаша
Дата 10.2.2010, 09:08 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1278
Регистрация: 14.1.2006
Где: г.Москва

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



Такую картинку обычно показывают, если ты на форме или в дизайнере что-то сам поменял неправильно. Компонент в списке контролов отсутствует наверно.


--------------------
Меня зовут Себастьян Парейра, торговец чёрным деревом.
PM MAIL   Вверх
chudak
Дата 10.2.2010, 11:37 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


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

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



Цитата(ДобренькийПапаша @  10.2.2010,  09:08 Найти цитируемый пост)
Такую картинку обычно показывают, если ты на форме или в дизайнере что-то сам поменял неправильно. Компонент в списке контролов отсутствует наверно. 


я же представил кусок коди из дезайнера... всё там определено. в том то и дела, когда запускаеш проект все компоненты работают, а на дизайнере нет его и вообще они время от времени, то появляются, то пропадают. мистика!!!

досихпор немогу решить эту задачу!!!

PM MAIL   Вверх
jonie
Дата 11.2.2010, 09:07 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Завсегдатай
Сообщений: 5613
Регистрация: 21.8.2005
Где: Владимир

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



Цитата

Код

            this.myGrid2._columns = ((System.Collections.Generic.List<CollectionComponents.myGridDataColumns>)(resources.GetObject("myGrid2._columns")));

есть мнение, что в ресурсах какая-то лажа, а не объект коллекция.


--------------------
Что-то не поняли? -> Напейтесь до зеленых человечков... эта сверхцивилизация Вам поможет...
PM MAIL Jabber   Вверх
chudak
Дата 11.2.2010, 11:12 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


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

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



Цитата(jonie @ 11.2.2010,  09:07)
Цитата

Код

            this.myGrid2._columns = ((System.Collections.Generic.List<CollectionComponents.myGridDataColumns>)(resources.GetObject("myGrid2._columns")));

есть мнение, что в ресурсах какая-то лажа, а не объект коллекция.

я тоже придерживаюсь этого мнения, но мне досихпор неудалось отыскать ресурса этого чтоб заглянуть вовнутрь!!! и при этом среда сама создает этот ресурс, я просто свойству указал тип:

Код

public List<myGridDataColumns> _columns
        {
            get
            {
                return columns;
            }
            set
            {
                columns = value;
                drawComponents();
                this.pHeader.Invalidate();
                this.pData.Invalidate();
            }
        }


и текст класса:

Код

 [Serializable]
    public class myGridDataColumns
    {
        string name = "Поле 1";
        string text = "Без названия";
        enType type = enType.TextBox;
        Color color = Color.Black;
        Font font = new Font(new FontFamily("Tahoma"), 10.0f);
        int width = 100;
        bool transfer = false;

        /// <summary>
        /// тип поля
        /// </summary>
        public enType _type
        {
            get { return type; }
            set { type = value; }
        }
        /// <summary>
        /// Цвет текста
        /// </summary>
        public Color _color
        {
            get { return color; }
            set { color = value; }
        }
        /// <summary>
        /// свойства текста
        /// </summary>
        public Font _font
        {
            get { return font; }
            set { font = value; }
        }
        /// <summary>
        /// ширина поля
        /// </summary>
        public int _width
        {
            get { return width; }
            set { width = value; }
        }
        /// <summary>
        /// переносить или нет
        /// </summary>
        public bool _transfer
        {
            get { return transfer; }
            set { transfer = value; }
        }
        /// <summary>
        /// название поля
        /// </summary>
        public string _text
        {
            get { return text; }
            set { text = value; }
        }
        /// <summary>
        /// имя поля
        /// </summary>
        public string _name
        {
            get { return name; }
            set { name = value; }
        }

        public override string ToString()
        {
            return name;
        }
        //КОНСТРУКТОРЫ
        public myGridDataColumns() { }

        public myGridDataColumns(enType type, Color color, Font font, int width, bool transfer)
        {

            this.type = type;
            this.color = color;
            this.font = font;
            this.width = width;
            this.transfer = transfer;
        }

        // ЕНУМЕРАТОРЫ
        public enum enType
        {
            None = 0,
            TextBox,
            ComboBox,
            CheckBox,
            Button,
            PictureBox
        }
    }

PM MAIL   Вверх
Феликс
Дата 19.2.2010, 09:31 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


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

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



Код

this.myGrid2._columns = ((System.Collections.Generic.List<CollectionComponents.myGridDataColumns>)(resources.GetObject("myGrid2._columns")));


Попробуй через debug-ер в runtime режиме просмотреть что тебе возвращает ресурс.

Код

var o = resources.GetObject("myGrid2._columns");


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

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


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

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


 




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


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

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