Форум программистов, компьютерный форум, киберфорум
C# Windows Forms
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.89/9: Рейтинг темы: голосов - 9, средняя оценка - 4.89
0 / 0 / 0
Регистрация: 27.11.2017
Сообщений: 3
1

Реализация кнопки "Назад"

08.05.2019, 00:14. Просмотров 1799. Ответов 4
Метки нет (Все метки)


Доброго времени суток. Дано задание: Разработать приложение «Файловая структура диска», с помощью которого можно отобразить файловую структуру диска.
При первоначальном запуске отображается содержимое корневого каталога диска D, после выбора любого каталога из списка каталогов по нажатию кнопки «Отобразить» отображается содержимое выбранного каталога . При нажатии на кнопку «Назад» отображается содержимое предыдущего каталога.
При разработке интерфейса приложения использовать компоненты Label, Button, ListBox (один из вариантов интерфейса представлен на рис.

Проблема заключается в кнопке "Назад", не получается перейти на предыдущий уровень.

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
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
    public partial class Form1 : Form
    {
        string[] predkatalog = new string[200];
        string rab;
        public Form1()
        {
            InitializeComponent();
        }
       
        private void Form1_Load(object sender, EventArgs e)
        {
            string dirName = "D:";
            
                predkatalog[0] = dirName;
            
                listBox1.Items.Add("Каталоги");
            if (Directory.Exists(dirName))
            {
                listBox1.Items.Add(dirName);
                string[] dirs = Directory.GetDirectories(dirName);
                foreach (string s in dirs)
                {
                    listBox1.Items.Add(s);
                }
                listBox1.Items.Add(" ");
                listBox1.Items.Add("Файлы");
                string[] files = Directory.GetFiles(dirName);
                foreach (string s in files)
                {
                    listBox1.Items.Add(s);
                }
 
            }
            
        }
 
 
        private void button1_Click(object sender, EventArgs e)
        {
            string katalogvibr = listBox1.SelectedItem.ToString();
            listBox1.Items.Clear();
            listBox1.Items.Add("Каталоги");
            if (Directory.Exists(katalogvibr))
            {
                listBox1.Items.Add(katalogvibr);
                string[] dirs = Directory.GetDirectories(katalogvibr);
                foreach (string s in dirs)
                {
                    listBox1.Items.Add(s);
                }
 
                listBox1.Items.Add(" ");
                listBox1.Items.Add("Файлы");
                string[] files = Directory.GetFiles(katalogvibr);
                foreach (string s in files)
                {
                    listBox1.Items.Add(s);
                }
            }
            for (int i = 1; i < listBox1.Items.Count; i++)
            {
                string stroka = listBox1.Items[i].ToString();
                if (stroka != " ")
                {
                    if (stroka != "Каталоги")
                    {
                        if (stroka != "Файлы")
                        {
                            predkatalog[i] = katalogvibr;
                        }
                    }
                }
 
            }
            rab = katalogvibr;
 
        }
 
        private void button2_Click(object sender, EventArgs e)
        {
            listBox1.Items.Clear();
            for (int i = 1; i < listBox1.Items.Count; i++)
            {
                if(rab == predkatalog[i])
                {
                    string l = predkatalog[i - 1];
                    listBox1.Items.Clear();
                    listBox1.Items.Add("Каталоги");
                    if (Directory.Exists(l))
                    {
                        listBox1.Items.Add(l);
                        string[] dirs = Directory.GetDirectories(l);
                        foreach (string s in dirs)
                        {
                            listBox1.Items.Add(s);
                        }
 
                        listBox1.Items.Add(" ");
                        listBox1.Items.Add("Файлы");
                        string[] files = Directory.GetFiles(l);
                        foreach (string s in files)
                        {
                            listBox1.Items.Add(s);
                        }
                        rab = l;
                    }
 
                }
                
 
            }
        }
    }
}
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
08.05.2019, 00:14
Ответы с готовыми решениями:

Как сделать кнопки "Вперед - Назад"?
Как кнопка &quot;Вперед - Назад&quot;? Легче Как сделать кнопку назад и вперед...? скачать тут

Кнопки "свернуть", "развернуть", "закрыть" на панель, которая используется вместо бордюра
используя форму без бордюров решил добавить кнопки &quot;свернуть&quot;,&quot;развернуть&quot;,&quot;закрыть&quot; на панель,...

Как использовать кнопки "Вперед" и "Hазад"?
Привет всем, пожалуйста помогать как сделать кнопка (вперед)-(назад)? код какой? //...

ToolStrip: добавить кнопки "Новый", "Открыть"
Здравствуйте. помогите! добавил компонент toolstrip, затем стандартные элементы. помогите с кодом...

__________________
Помогаю в написании студенческих работ здесь.
Записывайтесь на профессиональные курсы С#-разработчиков‌
4
3 / 1 / 2
Регистрация: 04.05.2019
Сообщений: 94
08.05.2019, 09:00 2
записывай в переменную последнию папку, и потом по нажатию на кнопку, появлялялась та папка, которая был записана в переменную
0
0 / 0 / 0
Регистрация: 27.11.2017
Сообщений: 3
08.05.2019, 10:01  [ТС] 3
а если нужно, к примеру, на две папки назад вернуться? была попытка уже через файлы, но из-за потоков ругается
0
Эксперт .NET
7522 / 5016 / 1194
Регистрация: 25.05.2015
Сообщений: 15,299
Записей в блоге: 14
08.05.2019, 10:21 4
piiinkovsk, Queue<T> или Stack<T> юзайте.
В самой файловой системе для выхода наверх есть ..
1
0 / 0 / 0
Регистрация: 13.10.2016
Сообщений: 9
08.05.2019, 14:51 5
Можно использовать метод GetParent
0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
08.05.2019, 14:51

Заказываю контрольные, курсовые, дипломные и любые другие студенческие работы здесь или здесь.

Кнопки "Повтор" и "Выход" MessageBox
У меня есть несколько checkbox-ов после всех операций например выбраны 5 checkbox-ов. При нажатие...

Кнопки "открыть" и "сохранить" в пятнашках
Доделать в программе &quot;пятнашки&quot; сохранение и загрузку поля в соответствующих кнопках

Цель - при нажатии на кнопку создать еще одну кнопку. Ошибка "Button" не содержит определения для "Location" и "Text""
int Control ; private void Button2_Click(object sender, RoutedEventArgs e) {...

Классы "Работник", "Календарь", "Оплата труда за месяц". Вывод табеля рабочего времени сотрудника
1. Реализовать класс работник, у класса свойства фамилия (строка), имя (строка), отчество (строка),...


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

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

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