ListView включен в пользовательский элемент управления - PullRequest
1 голос
/ 09 июня 2011

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

У меня проблема с элементом управления ListView, на котором я пытаюсь «нарисовать» таблицу (Вид = Подробности).Я добавляю заголовок столбцов для моего ListView и пару строк.Заголовок и строки видны в конструкторе из моего пользовательского действия, но когда я добавляю пользовательский элемент управления в форму Windows, я не вижу их ни в конструкторе, ни при выполнении приложения.Настраиваемое действие содержит также другие предопределенные элементы управления: ListBox, TextBox и т. Д., Которые отображаются правильно, но ListView нет, и я не могу найти разумного объяснения этому.Я также сделал некоторую отладку и заметил, что элементы есть, но просто не отображаются в форме.

Кто-то знает, как я могу решить эту проблему?:)

Ответы [ 2 ]

0 голосов
/ 10 июня 2011

Спасибо, что пытались помочь мне с этим.

Мне удалось решить проблему не очень изящно, но так, чтобы она работала.Я добавлю свое решение, если кому-то понадобится помощь с подобной проблемой.

Не знаю, можно ли это понять из моего вопроса, но я создал собственный элемент управления от дизайнера.Кажется, есть небольшая ошибка при создании файла Designer при добавлении ListView в пользовательский элемент управления.По какой-то причине столбцы, добавленные в конструкторе, не добавляются в файл * .Designer, я добавил их вручную, и проблема была решена.Строки кода, которые должны быть добавлены в этом случае, будут выглядеть примерно так:

this.myListView.Columns.AddRange(new System.Windows.Forms.ColumnHeader[] {
        this.myColumnHeader1,
        this.myColumnHeader2,
        this.myColumnHeader3});

        // 
        // myColumnHeader1
        // 
        this.myColumnHeader1.Text = "My Column Header1";
        this.myColumnHeader1.Width = 100;
        // 
        // myColumnHeader2
        // 
        this.myColumnHeader2.Text = "My Column Header 2";
        this.myColumnHeader2.Width = 100;
        // 
        // myColumnHeader3
        // 
        this.myColumnHeader3.Text = "My Column Header 3";
        this.myColumnHeader3.Width = 100;

Я также должен отметить, что эту проблему можно наблюдать только при добавлении ListView через конструктор в пользовательский элемент управления, еслион добавляется непосредственно в форму Windows, файл * .Designer будет сохранен Ok.

0 голосов
/ 09 июня 2011

call BringToFront ();метод представления списка

или во время разработки сделать это из contextmenu (щелкните элемент управления правой кнопкой мыши и выберите эти элементы)

или установите верхнюю и левую часть представления списка в коде для видимой области

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...