С наступающим Новым годом! Форум программистов, компьютерный форум, киберфорум
Наши страницы
C# Windows Forms
Войти
Регистрация
Восстановить пароль
 
Вова Ковальчук
4 / 4 / 4
Регистрация: 24.06.2014
Сообщений: 68
1

Необходимо в ListBox1 добавить строки - название папок в определенном каталоге

03.10.2014, 23:47. Просмотров 497. Ответов 10
Метки нет (Все метки)

Ребята, добрый вечер.
Возникла проблема, необходимо в listBox1 добавить строки (название папок в определенном коталоге)
Вот как я это делаю:

C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
private ListBox lstb = null;
 
ListBox listBox1 = new ListBox();
            listBox1.BackColor = System.Drawing.SystemColors.Control;
            listBox1.BorderStyle = System.Windows.Forms.BorderStyle.None;
            listBox1.Font = new System.Drawing.Font("Microsoft Sans Serif", 8.25F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(204)));
            listBox1.FormattingEnabled = true;
            listBox1.Location = new System.Drawing.Point(6, 19);
            listBox1.Name = "listBox1";
            listBox1.Size = new System.Drawing.Size(220, 221);
            listBox1.TabIndex = 0;
            groupBox1.Controls.Add(listBox1);
            lstb = listBox1;
 
private void create_directory()
        {
            if (Directory.Exists("C:\\Program Files\\CVSKeys"))
            {
                foreach (string path in Directory.GetDirectories("C:\\Program Files\\CVSKeys")) //////////////////////
                    lstb.Items.Add(Path.GetFileName(path)); ////////////////// вот тут беда
            }
            else
            {
                Directory.CreateDirectory("C:\\Program Files\\CVSKeys");
            }
        }
Пишет что Ссылка на объект не указывает на экземпляр объекта..
Хотя если вместо lstb писать listBox1 - то все отлично! Но мне так не подходит, так как все объекты динамически созданы, есть идеи как исправить?
Спасибо.
0
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
03.10.2014, 23:47
Ответы с готовыми решениями:

Невозможно добавить строки в элемент управления DataGridView, в котором нет столбцов. Сначала необходимо добавить столбцы
Дан массив студентов ВУЗа: ФИО, возраст, регион, факультет. Вывести на экран...

при использовании folderBrowserDialog1 (выбор папок), в listBox1 выдавалось содержимое папки
Подскажите как сделать так, чтобы при использовании folderBrowserDialog1 (выбор...

Вывод в listbox1 название компонентов которые находятся на форме
Нужно вывести название(name) всех компоненты находящихся на форме (Form1) в...

Передать строки в ListBox1 в зависимости от нажатой Button
Мужики, спасайте, к зачету нужно реализовать такую штуку: У меня имеется 5...

Добавить в архив перечень папок
Имеется список директорий для архивирования C:\Users\Denis\YandexDisk\Книги...

10
kventin_zhuk
БНТУ ФИТР
215 / 155 / 41
Регистрация: 26.12.2012
Сообщений: 382
04.10.2014, 00:05 2
Вова Ковальчук, ну так вы и listBox1 создаете динамически, не?

C#
1
ListBox listBox1 = new ListBox();
0
Вова Ковальчук
4 / 4 / 4
Регистрация: 24.06.2014
Сообщений: 68
04.10.2014, 00:10  [ТС] 3
Именно, динамически, вот поэтому и не хочет что-то работать, если просто тупо кинуть на форму listBox, то как по волшебству все идеально работает, а тут беда
0
AsUWish
Заблокирован
04.10.2014, 14:20 4
Дико извеняюсь за тупой вопрос но зачем вы это все делаете в таком виде? нельзя разве на форме заполнить нужными данными лист бокс? (параметры)

+ вам в контролы нужно видимо lstb добавлять
0
meksik
202 / 171 / 67
Регистрация: 04.10.2014
Сообщений: 839
04.10.2014, 14:31 5
lstb.Items.Add(Path.GetFileName(path)); ////////////////// вот тут беда

Так вы ищете директории или файлы?

(Path.GetFileName(path)

что за Path???

C#
1
2
3
4
5
6
7
8
9
10
11
12
private void create_directory()
        {
            if (Directory.Exists("C:\\Program Files\\CVSKeys"))
            {
                foreach (string path in Directory.GetDirectories("C:\\Program Files\\CVSKeys")) //////////////////////
                    lstb.Items.Add(path); ////////////////// вот тут беда
            }
            else
            {
                Directory.CreateDirectory("C:\\Program Files\\CVSKeys");
            }
        }
если вы хотите получить список подкаталогов
0
joker13-13
7 / 7 / 6
Регистрация: 02.12.2013
Сообщений: 51
04.10.2014, 14:35 6
Просто вынесите объявление листбокса
например
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
ListBox listBox1 = new ListBox();
private void create_listBox()
{
//private ListBox lstb = null;// эта строка по идее вам не нужна
            listBox1.BackColor = System.Drawing.SystemColors.Control;
            listBox1.BorderStyle = System.Windows.Forms.BorderStyle.None;
            listBox1.Font = new System.Drawing.Font("Microsoft Sans Serif", 8.25F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(204)));
            listBox1.FormattingEnabled = true;
            listBox1.Location = new System.Drawing.Point(6, 19);
            listBox1.Name = "listBox1";
            listBox1.Size = new System.Drawing.Size(220, 221);
            listBox1.TabIndex = 0;
            groupBox1.Controls.Add(listBox1);
            //lstb = listBox1;// эта строка по идее вам не нужна
}
private void create_directory()
        {
            if (Directory.Exists("C:\\Program Files\\CVSKeys"))
            {
                foreach (string path in Directory.GetDirectories("C:\\Program Files\\CVSKeys"))
                     listBox1.Items.Add(Path.GetFileName(path)); //ну а тут вот так
            }
            else
            {
                Directory.CreateDirectory("C:\\Program Files\\CVSKeys");
            }
        }
1
Вова Ковальчук
4 / 4 / 4
Регистрация: 24.06.2014
Сообщений: 68
04.10.2014, 14:37  [ТС] 7
Ищу директории.
Вот к примеру в папке C:\\Program Files\\CVSKeys есть папка1 и папка2
В listBox должны появиться 2 строчки : папка1 и папка2
0
meksik
202 / 171 / 67
Регистрация: 04.10.2014
Сообщений: 839
04.10.2014, 14:40 8
Цитата Сообщение от Вова Ковальчук Посмотреть сообщение
Ищу директории.
Вот к примеру в папке C:\\Program Files\\CVSKeys есть папка1 и папка2
В listBox должны появиться 2 строчки : папка1 и папка2
тогда мой вариант по идее должен сработать

Добавлено через 1 минуту
лень моделировать задачу и проверять, проверьте сами
0
Вова Ковальчук
4 / 4 / 4
Регистрация: 24.06.2014
Сообщений: 68
04.10.2014, 14:43  [ТС] 9
lstb.Items.Add(path);
Ссылка на объект не указывает на экземпляр объекта...

Однако если вместо lstb написать listBox1 и тупо кинуть на форму listBox1 - то все работает, а так нет, вот это и нужно решить..
0
Вова Ковальчук
4 / 4 / 4
Регистрация: 24.06.2014
Сообщений: 68
04.10.2014, 14:47  [ТС] 10
ОГРОМНОЕ ВАМ СПАСИБО!!!
0
meksik
202 / 171 / 67
Регистрация: 04.10.2014
Сообщений: 839
04.10.2014, 14:58 11
проблема в листбоксе однозначно.
C#
1
2
3
4
5
6
7
8
9
10
11
 
ListBox lstb = new ListBox();
            lstb .BackColor = System.Drawing.SystemColors.Control;
            lstb .BorderStyle = System.Windows.Forms.BorderStyle.None;
            lstb .Font = new System.Drawing.Font("Microsoft Sans Serif", 8.25F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(204)));
            lstb .FormattingEnabled = true;
            lstb .Location = new System.Drawing.Point(6, 19);
            lstb .Name = "listBox1";
            lstb .Size = new System.Drawing.Size(220, 221);
            lstb .TabIndex = 0;
            groupBox1.Controls.Add(lstb);
так пробните

Добавлено через 10 минут
проблема скорее всего в том, что вы на форму добавляете listBox1, а работаете lstb, который не существует на форме
0
04.10.2014, 14:58
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
04.10.2014, 14:58

Необходимо определить количество папок в папке и отобразить этот список с помощью CheckBox
Есть задача. 1. Необходимо определить количество папок в папке D:\Папка....

Чтобы при переносе строки из одной listBox1 в другой два раза одна строка не повторялась
что надо написать в коде что бы при переносении строки из одной listbox1 в...

Добавить список существующих файлов и папок в listview
здраствуйте.пишу файл-менеджер.вопрос:как добавить список существующих файлов и...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
11
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2018, vBulletin Solutions, Inc.
Рейтинг@Mail.ru