powered by simpleCommunicator - 2.0.51     © 2025 Programmizd 02
Форумы / WinForms, .Net Framework [игнор отключен] [закрыт для гостей] / Обработичк исключений c#
12 сообщений из 62, страница 3 из 3
Обработичк исключений c#
    #39814660
SAS2014
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
stomskyТ.е. ты хочешь в случае возникновения Exception-а создать новую форму, в которую выведешь список каталогов/файлов, которые не удалось переименовать? Тогда предлагаю:
1) конечно перехват исключения внести внутрь цикла переименований
2) в обработчике накапливать список каталогов/файлов, которые не удалось переименовать
3) после выхода из цикла собственно проверить есть ли в списке из п.2 хотя бы один элемент, и если есть, то создать форму и вывести в нее содержимое этого списка

Типа такого (добавленные мной строки оканчиваются комментарием " // <--"):
Код: 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.
// Переименование подкаталога
        private void b_rename_Click(object sender, EventArgs e)
        {
            List<string> problems = new List<string>(); // <--
            try
            {   
                var rename = MessageBox.Show("Точно переименовать подкаталоги?", "Check_catalogues!", MessageBoxButtons.YesNo, MessageBoxIcon.Warning);
                if (rename == DialogResult.Yes)
                {
                    for (int j = 0; j < dataGridView1.RowCount; j++)
                    try
                    {
                        string priznak = dataGridView1.Rows[j].Cells[3].Value.ToString();
                        if (priznak == "0") // если пустой подкаталог то переименовать
                        {

                            string old_name = dataGridView1.Rows[j].Cells[0].Value.ToString();
                            string h = old_name.Substring(0, old_name.LastIndexOf('\\'));
                            string new_name = h + "\\" + t_new_name_null.Text + dataGridView1.Rows[j].Cells[2].Value.ToString();
                            System.IO.Directory.Move(old_name, new_name);
                            
                        }

                        if (priznak == "1") // если нет файла в подкаталоге то переименовать
                        {

                            string old_name2 = dataGridView1.Rows[j].Cells[0].Value.ToString();
                            string h2 = old_name2.Substring(0, old_name2.LastIndexOf('\\'));
                            string new_name2 = h2 + "\\" + t_new_name_err.Text + dataGridView1.Rows[j].Cells[2].Value.ToString();
                            System.IO.Directory.Move(old_name2, new_name2);
                        }
                    }
                    catch(Exception ex) // <--
                    { // <--
                        problems.Add(dataGridView1.Rows[j].Cells[0].Value.ToString();); // <--
                    } // <--
                    if (problems.Count == 0)  // <--
                      MessageBox.Show(
                         this,
                             "Переименование всех подкаталогов прошло удачно",
                             "Check_catalogues",
                             MessageBoxButtons.OK,
                             MessageBoxIcon.Information
                             );
                    else // <--
                    { // <--
                        Form3 f3 = new Form3(); // <--
                        foreach (strint problem in problems) // <--
                           f3.listBox1.Items.Add(problem + " - " + "Не     удалось переименовать"); // <--
                        f3.Show(); // <--
                    } // <--
                }
            }
            catch (Exception)
            {                
                               
            }
        }



PS. Не в обиду, просто любопытно: судя по вопросу, ты недавно начал C# изучать?

Спасибо за инфу я уже понял, что да как надо по данному коду. И да я самостоятельно изучаю си шарп ... так сказать пытаюсь .. и ну иногда получается самому найти ответы, а иногда приходится спрашивать коллег иили на форуме ... но это крайний случай (так как лучше самому найти ответы)
...
Рейтинг: 0 / 0
Обработичк исключений c#
    #39814666
SAS2014
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
stomskyPetro123пропущено...
воркер не нужен.
Вероятно, список очень длинный, поэтому наблюдается подвисание интерфейса.
ТС расчитывает, что применение BW проблему с подвисанием решит...
Но то, что данные тянутся непосредственно из datagridview меня несколько смущает...
Я лично предпочитаю в таких случаях по источнику данные ходить, а не по контролу, отображающему данные...
Но что-то мне подсказывает, что ТС либо студент, либо любитель-энтузиаст (в хорошем смысле), либо недавно за C# взялся...

datagridview мне удобен в использование тем что там столбцы как минимум и настроить отображение и прочее легче, а инфа туда попадет исключительно для отображение, с источником данных так каких как БД не связан ....
...
Рейтинг: 0 / 0
Обработичк исключений c#
    #39814669
SAS2014
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Petro123SAS2014,
Зачем вокер?
хотел анимацию сделать при заполнении столбцов .... датагрида ... и щас необходима кнопка стоп
если есть вариант, который будет позволит постепенно заполнение строк и возможность остановки процесса то скажи что за вариант
...
Рейтинг: 0 / 0
Обработичк исключений c#
    #39814675
fkthat
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
SAS2014datagridview мне удобен в использование тем что там столбцы как минимум и настроить отображение и прочее легче, а инфа туда попадет исключительно для отображение, с источником данных так каких как БД не связан ....

Почитал бы ты, лучше, что-нибудь про всякие паттерны ООП, MVC, MVP и проч., что ли, вместо того чтобы садиться и с набегу свой говнокод (ты уж извини, но твой код - это самый что ни на есть говнокод) писать.
...
Рейтинг: 0 / 0
Обработичк исключений c#
    #39814683
SAS2014
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
fkthatSAS2014datagridview мне удобен в использование тем что там столбцы как минимум и настроить отображение и прочее легче, а инфа туда попадет исключительно для отображение, с источником данных так каких как БД не связан ....

Почитал бы ты, лучше, что-нибудь про всякие паттерны ООП, MVC, MVP и проч., что ли, вместо того чтобы садиться и с набегу свой говнокод (ты уж извини, но твой код - это самый что ни на есть говнокод) писать.

ну так перепиши мой под свой взгляд раз такой умный
...
Рейтинг: 0 / 0
Обработичк исключений c#
    #39814686
fkthat
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
SAS2014ну так перепиши мой под свой взгляд раз такой умный
Мне на работе за код платят двадцатку в час. Поэтому писать код за тебя просто так я не хочу. Советом помочь - это всегда пожалуйста.
...
Рейтинг: 0 / 0
Обработичк исключений c#
    #39814694
stomsky
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
SAS2014datagridview мне удобен в использование тем что там столбцы как минимум и настроить отображение и прочее легче, а инфа туда попадет исключительно для отображение, с источником данных так каких как БД не связан ....
Вообще под источником данных я подразумевал не БД, "локальное хранилище" типа DataSet/DataTable (раз уж все равно WinForms используешь, так почему бы не пользоваться и этими классами?) или список/массив экземпляров класса, к которым через BindingSource привязывается DataGridView.
Но вообще дело хозяйское...
...
Рейтинг: 0 / 0
Обработичк исключений c#
    #39814701
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
SAS2014Petro123SAS2014,
Зачем вокер?
хотел анимацию сделать при заполнении столбцов .... датагрида ... и щас необходима кнопка стоп
если есть вариант, который будет позволит постепенно заполнение строк и возможность остановки процесса то скажи что за вариант
Анимацию такую не люблю.
Есть вариант фоновой работы как у тебя на сотовом в андроиде. Крутится колесико индикатор.
Тогда как сказал выше - дели на 2 вопроса отдельных.
...
Рейтинг: 0 / 0
Обработичк исключений c#
    #39814826
SAS2014
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
fkthatSAS2014ну так перепиши мой под свой взгляд раз такой умный
Мне на работе за код платят двадцатку в час. Поэтому писать код за тебя просто так я не хочу. Советом помочь - это всегда пожалуйста.

совет одно критика кода другое, ты же не можешь доказать что ты лучше напишешь
...
Рейтинг: 0 / 0
Обработичк исключений c#
    #39814835
Дмитрий Мух
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
SAS2014,

хотите совета как и что сделать лучше?

Расскажите, что за программу пишите, для кого. Покажите что получилось.
Тогда можно будет предложить что и как в ней сделать лучше.

А ещё хороший способ - спрашивать пользователей о том, что бы они хотели улучшить.
...
Рейтинг: 0 / 0
Обработичк исключений c#
    #39814924
fkthat
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
SAS2014ты же не можешь доказать что ты лучше напишешь

По крайней мере, я знаю про System.IO.Path Начни хотя бы с него, потому что то, как ты работаешь с путями - это двойной фейспалм.
...
Рейтинг: 0 / 0
Обработичк исключений c#
    #39816833
SAS2014
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
fkthatSAS2014ты же не можешь доказать что ты лучше напишешь

По крайней мере, я знаю про System.IO.Path Начни хотя бы с него, потому что то, как ты работаешь с путями - это двойной фейспалм.

зато работает
...
Рейтинг: 0 / 0
12 сообщений из 62, страница 3 из 3
Форумы / WinForms, .Net Framework [игнор отключен] [закрыт для гостей] / Обработичк исключений c#
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]