Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / WinForms, .Net Framework Новый топик    Ответить
Топик располагается на нескольких страницах: Ctrl  назад   1 2 [3]      все
 Re: Обработичк исключений c#  [new]
SAS2014
Member

Откуда: Сталинград
Сообщений: 2786
stomsky
Т.е. ты хочешь в случае возникновения Exception-а создать новую форму, в которую выведешь список каталогов/файлов, которые не удалось переименовать? Тогда предлагаю:
1) конечно перехват исключения внести внутрь цикла переименований
2) в обработчике накапливать список каталогов/файлов, которые не удалось переименовать
3) после выхода из цикла собственно проверить есть ли в списке из п.2 хотя бы один элемент, и если есть, то создать форму и вывести в нее содержимое этого списка

Типа такого (добавленные мной строки оканчиваются комментарием " // <--"):
// Переименование подкаталога
        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++)
                    [b]try[/b]
                    {
                        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# изучать?


Спасибо за инфу я уже понял, что да как надо по данному коду. И да я самостоятельно изучаю си шарп ... так сказать пытаюсь .. и ну иногда получается самому найти ответы, а иногда приходится спрашивать коллег иили на форуме ... но это крайний случай (так как лучше самому найти ответы)
17 май 19, 15:04    [21887359]     Ответить | Цитировать Сообщить модератору
 Re: Обработичк исключений c#  [new]
SAS2014
Member

Откуда: Сталинград
Сообщений: 2786
stomsky
Petro123
пропущено...
воркер не нужен.

Вероятно, список очень длинный, поэтому наблюдается подвисание интерфейса.
ТС расчитывает, что применение BW проблему с подвисанием решит...
Но то, что данные тянутся непосредственно из datagridview меня несколько смущает...
Я лично предпочитаю в таких случаях по источнику данные ходить, а не по контролу, отображающему данные...
Но что-то мне подсказывает, что ТС либо студент, либо любитель-энтузиаст (в хорошем смысле), либо недавно за C# взялся...


datagridview мне удобен в использование тем что там столбцы как минимум и настроить отображение и прочее легче, а инфа туда попадет исключительно для отображение, с источником данных так каких как БД не связан ....
17 май 19, 15:07    [21887366]     Ответить | Цитировать Сообщить модератору
 Re: Обработичк исключений c#  [new]
SAS2014
Member

Откуда: Сталинград
Сообщений: 2786
Petro123
SAS2014,
Зачем вокер?

хотел анимацию сделать при заполнении столбцов .... датагрида ... и щас необходима кнопка стоп
если есть вариант, который будет позволит постепенно заполнение строк и возможность остановки процесса то скажи что за вариант
17 май 19, 15:09    [21887370]     Ответить | Цитировать Сообщить модератору
 Re: Обработичк исключений c#  [new]
fkthat
Member

Откуда:
Сообщений: 1163
SAS2014
datagridview мне удобен в использование тем что там столбцы как минимум и настроить отображение и прочее легче, а инфа туда попадет исключительно для отображение, с источником данных так каких как БД не связан ....


Почитал бы ты, лучше, что-нибудь про всякие паттерны ООП, MVC, MVP и проч., что ли, вместо того чтобы садиться и с набегу свой говнокод (ты уж извини, но твой код - это самый что ни на есть говнокод) писать.
17 май 19, 15:14    [21887376]     Ответить | Цитировать Сообщить модератору
 Re: Обработичк исключений c#  [new]
SAS2014
Member

Откуда: Сталинград
Сообщений: 2786
fkthat
SAS2014
datagridview мне удобен в использование тем что там столбцы как минимум и настроить отображение и прочее легче, а инфа туда попадет исключительно для отображение, с источником данных так каких как БД не связан ....


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


ну так перепиши мой под свой взгляд раз такой умный
17 май 19, 15:28    [21887392]     Ответить | Цитировать Сообщить модератору
 Re: Обработичк исключений c#  [new]
fkthat
Member

Откуда:
Сообщений: 1163
SAS2014
ну так перепиши мой под свой взгляд раз такой умный

Мне на работе за код платят двадцатку в час. Поэтому писать код за тебя просто так я не хочу. Советом помочь - это всегда пожалуйста.
17 май 19, 15:31    [21887396]     Ответить | Цитировать Сообщить модератору
 Re: Обработичк исключений c#  [new]
stomsky
Member

Откуда: Волгоград
Сообщений: 149
SAS2014
datagridview мне удобен в использование тем что там столбцы как минимум и настроить отображение и прочее легче, а инфа туда попадет исключительно для отображение, с источником данных так каких как БД не связан ....

Вообще под источником данных я подразумевал не БД, "локальное хранилище" типа DataSet/DataTable (раз уж все равно WinForms используешь, так почему бы не пользоваться и этими классами?) или список/массив экземпляров класса, к которым через BindingSource привязывается DataGridView.
Но вообще дело хозяйское...
17 май 19, 15:41    [21887412]     Ответить | Цитировать Сообщить модератору
 Re: Обработичк исключений c#  [new]
Petro123
Member

Откуда: Загрузочный сектор Москвы (AutoPOI.ru)
Сообщений: 38643
SAS2014
Petro123
SAS2014,
Зачем вокер?

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

Анимацию такую не люблю.
Есть вариант фоновой работы как у тебя на сотовом в андроиде. Крутится колесико индикатор.
Тогда как сказал выше - дели на 2 вопроса отдельных.
17 май 19, 15:52    [21887430]     Ответить | Цитировать Сообщить модератору
 Re: Обработичк исключений c#  [new]
SAS2014
Member

Откуда: Сталинград
Сообщений: 2786
fkthat
SAS2014
ну так перепиши мой под свой взгляд раз такой умный

Мне на работе за код платят двадцатку в час. Поэтому писать код за тебя просто так я не хочу. Советом помочь - это всегда пожалуйста.


совет одно критика кода другое, ты же не можешь доказать что ты лучше напишешь
18 май 19, 04:14    [21887765]     Ответить | Цитировать Сообщить модератору
 Re: Обработичк исключений c#  [new]
Дмитрий Мух
Member

Откуда: Зеленоград
Сообщений: 2053
SAS2014,

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

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

А ещё хороший способ - спрашивать пользователей о том, что бы они хотели улучшить.
18 май 19, 10:38    [21887793]     Ответить | Цитировать Сообщить модератору
 Re: Обработичк исключений c#  [new]
fkthat
Member

Откуда:
Сообщений: 1163
SAS2014
ты же не можешь доказать что ты лучше напишешь


По крайней мере, я знаю про System.IO.Path Начни хотя бы с него, потому что то, как ты работаешь с путями - это двойной фейспалм.
19 май 19, 00:01    [21887969]     Ответить | Цитировать Сообщить модератору
 Re: Обработичк исключений c#  [new]
SAS2014
Member

Откуда: Сталинград
Сообщений: 2786
fkthat
SAS2014
ты же не можешь доказать что ты лучше напишешь


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


зато работает
23 май 19, 00:01    [21891372]     Ответить | Цитировать Сообщить модератору
Топик располагается на нескольких страницах: Ctrl  назад   1 2 [3]      все
Все форумы / WinForms, .Net Framework Ответить