Форум программистов, компьютерный форум, киберфорум
C# Windows Forms
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 5.00/5: Рейтинг темы: голосов - 5, средняя оценка - 5.00
4 / 4 / 4
Регистрация: 24.06.2014
Сообщений: 100

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

03.10.2014, 23:47. Показов 1043. Ответов 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
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
03.10.2014, 23:47
Ответы с готовыми решениями:

Как можно сделать ротацию папок в определенном каталоге по количеству?
Добрый день! Как можно сделать ротацию папок в определенном каталоге по количеству? Есть каталог с бэкапами C:\backup\ Есть...

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

Получить список файлов в определенном каталоге
ДД! Как-то можно получить список всех файлов в определенном каталоге?

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

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

+ вам в контролы нужно видимо lstb добавлять
0
 Аватар для meksik
202 / 171 / 67
Регистрация: 04.10.2014
Сообщений: 839
04.10.2014, 14:31
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
8 / 8 / 6
Регистрация: 02.12.2013
Сообщений: 54
04.10.2014, 14:35
Просто вынесите объявление листбокса
например
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
Сообщений: 100
04.10.2014, 14:37  [ТС]
Ищу директории.
Вот к примеру в папке C:\\Program Files\\CVSKeys есть папка1 и папка2
В listBox должны появиться 2 строчки : папка1 и папка2
0
 Аватар для meksik
202 / 171 / 67
Регистрация: 04.10.2014
Сообщений: 839
04.10.2014, 14:40
Цитата Сообщение от Вова Ковальчук Посмотреть сообщение
Ищу директории.
Вот к примеру в папке C:\\Program Files\\CVSKeys есть папка1 и папка2
В listBox должны появиться 2 строчки : папка1 и папка2
тогда мой вариант по идее должен сработать

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

Однако если вместо lstb написать listBox1 и тупо кинуть на форму listBox1 - то все работает, а так нет, вот это и нужно решить..
0
4 / 4 / 4
Регистрация: 24.06.2014
Сообщений: 100
04.10.2014, 14:47  [ТС]
ОГРОМНОЕ ВАМ СПАСИБО!!!
0
 Аватар для meksik
202 / 171 / 67
Регистрация: 04.10.2014
Сообщений: 839
04.10.2014, 14:58
проблема в листбоксе однозначно.
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
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
04.10.2014, 14:58
Помогаю со студенческими работами здесь

Как создать файл в определенном каталоге?
{ CreateDir(Edit1->Text); Edit2-> } вот у меня создается с помощью функции createdir каталог имя его в поле едит1, я хочу чтоб в...

Поочередно открывать файлы в определенном каталоге
Здравствуйте уважаемые программисты!!! Подскажите пожалуйста как написать, что бы прога поочередно открывала файл в определенном каталоге.

Добавить в конец каждой строки необходимо количество «*» что бы выровнять текст по правому краю большей строки
Дано некоторое количество строк, не больше как размер текстового окна. Добавить в конец каждой строки необходимо количество «*» что бы...

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

Как перебрать все файлы в определенном каталоге?
Люди, подскажите ламеру, как можно перебрать все файлы в определенном каталоге, включая просмотр подкаталогов???


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

Или воспользуйтесь поиском по форуму:
11
Ответ Создать тему
Новые блоги и статьи
SDL3 для Web (WebAssembly): Обработчик клика мыши в браузере ПК и касания экрана в браузере на мобильном устройстве
8Observer8 02.02.2026
Содержание блога Для начала пошагово создадим рабочий пример для подготовки к экспериментам в браузере ПК и в браузере мобильного устройства. Потом напишем обработчик клика мыши и обработчик. . .
Философия технологии
iceja 01.02.2026
На мой взгляд у человека в технических проектах остается роль генерального директора. Все остальное нейронки делают уже лучше человека. Они не могут нести предпринимательские риски, не могут. . .
SDL3 для Web (WebAssembly): Вывод текста со шрифтом TTF с помощью SDL3_ttf
8Observer8 01.02.2026
Содержание блога В этой пошаговой инструкции создадим с нуля веб-приложение, которое выводит текст в окне браузера. Запустим на Android на локальном сервере. Загрузим Release на бесплатный. . .
SDL3 для Web (WebAssembly): Сборка C/C++ проекта из консоли
8Observer8 30.01.2026
Содержание блога Если вы откроете примеры для начинающих на официальном репозитории SDL3 в папке: examples, то вы увидите, что все примеры используют следующие четыре обязательные функции, а. . .
SDL3 для Web (WebAssembly): Установка Emscripten SDK (emsdk) и CMake для сборки C и C++ приложений в Wasm
8Observer8 30.01.2026
Содержание блога Для того чтобы скачать Emscripten SDK (emsdk) необходимо сначало скачать и уставить Git: Install for Windows. Следуйте стандартной процедуре установки Git через установщик. . . .
SDL3 для Android: Подключение Box2D v3, физика и отрисовка коллайдеров
8Observer8 29.01.2026
Содержание блога Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами. Версия v3 была полностью переписана на Си, в. . .
Инструменты COM: Сохранение данный из VARIANT в файл и загрузка из файла в VARIANT
bedvit 28.01.2026
Сохранение базовых типов COM и массивов (одномерных или двухмерных) любой вложенности (деревья) в файл, с возможностью выбора алгоритмов сжатия и шифрования. Часть библиотеки BedvitCOM Использованы. . .
SDL3 для Android: Загрузка PNG с альфа-каналом с помощью SDL_LoadPNG (без SDL3_image)
8Observer8 28.01.2026
Содержание блога SDL3 имеет собственные средства для загрузки и отображения PNG-файлов с альфа-каналом и базовой работы с ними. В этой инструкции используется функция SDL_LoadPNG(), которая. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru