Модераторы: gambit, Partizan
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> progressBar, присоединение progressbar 
:(
    Опции темы
golfV
Дата 6.11.2009, 11:54 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 199
Регистрация: 4.11.2007

Репутация: нет
Всего: 1



Привет!

помогите пожалуйста с созданием progressBar. Есть форма с button при нажатии на кнопку копируются файлы из одной папки в другую, как сделать чтоб статус копирования отображал progressBar. Подскажите пожалуйста как это реализовать.
PM MAIL   Вверх
golfV
Дата 6.11.2009, 13:02 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 199
Регистрация: 4.11.2007

Репутация: нет
Всего: 1



таким методом я копирую
Код

public static void CopyAll(DirectoryInfo source, DirectoryInfo target)
        {
            
            // Check if the target directory exists, if not, create it.
            if (Directory.Exists(target.FullName) == false)
            {
                Directory.CreateDirectory(target.FullName);
            }

            // Copy each file into it's new directory.
            try
            {
                foreach (FileInfo fi in source.GetFiles())
                {
                    Console.WriteLine(@"Copying {0}\{1}", target.FullName, fi.Name);
                    fi.CopyTo(Path.Combine(target.ToString(), fi.Name), true);
                }

            }
            catch (Exception ex)
            {
                MessageBox.Show("wrong directory");
            }
            
                // Copy each subdirectory using recursion.
                foreach (DirectoryInfo diSourceSubDir in source.GetDirectories())
                {
                   
                    DirectoryInfo nextTargetSubDir =
                        target.CreateSubdirectory(diSourceSubDir.Name);
                    CopyAll(diSourceSubDir, nextTargetSubDir);
                     
                }
            
         
        }


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

 progressBar1.Visible = true;
            progressBar1.Minimum = 1;
            progressBar1.Maximum =sourceDirectory.Length;
            progressBar1.Value = 1;
          
                   
                 progressBar1.PerformStep();   
                
            

PM MAIL   Вверх
golfV
Дата 6.11.2009, 16:06 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 199
Регистрация: 4.11.2007

Репутация: нет
Всего: 1



неужели никто незнает как можно прикрутить progressBar?

Это сообщение отредактировал(а) golfV - 6.11.2009, 16:07
PM MAIL   Вверх
Certain
Дата 6.11.2009, 16:32 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 235
Регистрация: 18.6.2008
Где: Moscow

Репутация: 3
Всего: 4



Не могу понять, почему у Вас написано Console.WriteLine? Это консольное приложение? Если "да", то при чем тут ProgressBar(WinForms)?

Если WniForms приложение, то так

Код

    public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();
        }

        private void button1_Click(object sender, EventArgs e)
        {
            CopyAll(new DirectoryInfo(@"E:\Работы\TestProgressBar\FROM"), new DirectoryInfo(@"E:\Работы\TestProgressBar\TO"));
        }

        public void CopyAll(DirectoryInfo source, DirectoryInfo target)
        {
            try
            {
                if (Directory.Exists(target.FullName) == false)
                {
                    Directory.CreateDirectory(target.FullName);
                }
                progressBar1.Visible = true;
                progressBar1.Value = 0;
                progressBar1.Maximum = source.GetFiles().Length;
                foreach (FileInfo fi in source.GetFiles())
                {
                    progressBar1.Value++;
                    progressBar1.Refresh();
                    fi.CopyTo(Path.Combine(target.ToString(), fi.Name), true);
                }
                progressBar1.Visible = false;
            }
            catch (Exception ex)
            {
                MessageBox.Show(ex.Message);
            }
        }
    }


Это сообщение отредактировал(а) Certain - 6.11.2009, 16:37
--------------------
Работа программиста и шамана имеет много общего - оба боpмочyт непонятные слова, совершают непонятные действия и не могут объяснить, как оно работает.
PM MAIL ICQ   Вверх
golfV
Дата 6.11.2009, 16:44 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 199
Регистрация: 4.11.2007

Репутация: нет
Всего: 1



Console.writeline это так просто для проверки поставил

Добавлено через 5 минут и 31 секунду
большое спасибо, такой вариант работает
PM MAIL   Вверх
Certain
Дата 6.11.2009, 16:50 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 235
Регистрация: 18.6.2008
Где: Moscow

Репутация: 3
Всего: 4



Для проверки в winFroms?  smile 
Всегда пожалуйста 


Это сообщение отредактировал(а) Certain - 6.11.2009, 16:50
--------------------
Работа программиста и шамана имеет много общего - оба боpмочyт непонятные слова, совершают непонятные действия и не могут объяснить, как оно работает.
PM MAIL ICQ   Вверх
golfV
Дата 6.11.2009, 17:25 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 199
Регистрация: 4.11.2007

Репутация: нет
Всего: 1



и в winforms тоже, привычка=)
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Прежде чем создать тему, посмотрите сюда:
mr.DUDA
THandle

Используйте теги [code=csharp][/code] для подсветки кода. Используйтe чекбокс "транслит" если у Вас нет русских шрифтов.
Что делать если Вам помогли, но отблагодарить помощника плюсом в репутацию Вы не можете(не хватает сообщений)? Пишите сюда, или отправляйте репорт. Поставим :)
Так же не забывайте отмечать свой вопрос решенным, если он таковым является :)


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, mr.DUDA, THandle.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Разработка Windows Forms | Следующая тема »


 




[ Время генерации скрипта: 0.0439 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.