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

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Как реализовать слайд-шоу:? 
:(
    Опции темы
Doc_d0s
  Дата 29.9.2006, 10:41 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


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

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



Как реализовать слайд-шоу:?

Чтобы я только указал папку с файлами, построил список, и дал это список ф-ии, которая в PictureBox будет поочередено выводить файлы, которые будут показываться с соответствующей задержкой...
--------------------
Админ- это вождь Apache'й :)
PM MAIL ICQ   Вверх
mr.DUDA
Дата 29.9.2006, 11:50 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


3D-маньяк
****


Профиль
Группа: Экс. модератор
Сообщений: 8244
Регистрация: 27.7.2003
Где: город-герой Минск

Репутация: 24
Всего: 232



Примерно так: создаём форму, кидаем на неё таймер и PictureBox, в конструкторе формы (или в перекрытом методе OnLoad) создаём список имён файлов методом Directory.GetFiles, помещаем его в какое-нибудь поле класса, и запускаем таймер методом Start; в обработчике события Timer.Ellapsed берём очередное имя файла из массива имён, создаём битмап методом Bitmap.FromFile, пихаем его в пикчербокс, а ту картинку которая была до этого в боксе, Dispos-им.


--------------------
user posted image
PM MAIL WWW   Вверх
Doc_d0s
Дата 29.9.2006, 17:30 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


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

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



Dispose приватный метод(
--------------------
Админ- это вождь Apache'й :)
PM MAIL ICQ   Вверх
mr.DUDA
Дата 30.9.2006, 11:17 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


3D-маньяк
****


Профиль
Группа: Экс. модератор
Сообщений: 8244
Регистрация: 27.7.2003
Где: город-герой Минск

Репутация: 24
Всего: 232



Цитата(Doc_d0s @  29.9.2006,  17:30 Найти цитируемый пост)
Dispose приватный метод(

Не приватный.

Вот пример кода:
Код
using System;
using System.IO;
using System.Drawing;
using System.Windows.Forms;

namespace WindowsApplication4
{
    public partial class Form1 : Form
    {
        // массив имён файлов
        string[] _fileNames;
        
        // номер отображаемого файла в слайдшоу
        int _iFile = 0;

        public Form1()
        {
            InitializeComponent();

            if (!this.DesignMode)
            {
                // получаем список JPEG-файлов в заданной директории
                _fileNames = Directory.GetFiles("c:\\1\\", "*.jpg");

                // стартуем таймер
                this.timer1.Interval = 2000;
                this.timer1.Enabled = true;
            }
        }

        private void timer1_Tick(object sender, EventArgs e)
        {
            if (_fileNames.Length > 0)
            {
                // освобождаем ресурсы, занятые предыдущей картинкой
                if (this.pictureBox1.Image != null)
                    this.pictureBox1.Image.Dispose();

                try
                {
                    // назначаем новую картинку пикчербоксу
                    this.pictureBox1.Image = Image.FromFile(_fileNames[_iFile]);

                    // наращиваем счётчик
                    _iFile++;
                    if (_iFile > _fileNames.Length - 1)
                        _iFile = 0;
                }
                catch
                {
                    // в случае неудачи, ставим null в Image
                    this.pictureBox1.Image = null;
                }
            }
        }
    }
}


З.Ы. вместо наращивания счётчика можно было бы и так написать:
Код
Image.FromFile(_fileNames[_iFile++ % _fileNames.Length]);



--------------------
user posted image
PM MAIL WWW   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Прежде чем создать тему, посмотрите сюда:
mr.DUDA
THandle

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


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

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


 




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


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

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