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

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> saveFileDialog сохранение скриншота. Проблема с путями и форматом файла 
:(
    Опции темы
CasperSC
Дата 7.4.2010, 09:55 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


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

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



Я выделяю какую-то область экрана и эту область "фотографирую". Потом, если каталог заданный по умолчанию не существует, то появляется окошко, в котором нужно выбрать путь и формат сохраняемому файлу. У меня появляется saveFileDialog и в поле "Имя файла" появляется само имя и расширение, когда я начинаю менять разные форматы, то они просто добавляются в поле, не удаляя прошлый, как сделать, чтобы они вообще не добавлялись?

user posted image

Пока сырой код:
Код

        private void FormTopScreenshot_MouseUp(object sender, MouseEventArgs e)
        {
            Bitmap bmp = SM.CaptureScreenFromRect(rectSelected); //SM - класс Screenshotmaker.  rectSelected - прямоугольник который я выделил на экране. Внизу во втором примере этот метод показан.
            if (e.Button == MouseButtons.Left)
            {
                if (rectSelected.Height > 0 && rectSelected.Width > 0) //если я реально что нибудь выделил, а не просто левую кнопку мышки отпустил
                {
                    string PathForScreenshot = Properties.Settings.Default.DefaultFolderForScreenshots; 
                    Cursor.Current = Cursors.Default;
                    if (Directory.Exists(PathForScreenshot)) //проверяем существует ли директория заданная пользователем по умолчанию
                    {
                        SM.CaptureScreenFromRect(rectSelected, PathForScreenshot, 
                            "rectScreen", ScreenshotFormat.PNG); //делаем скриншот, пока что не заморачивался с выбором формата заранее пользователем
                    }
                    else
                    {
                        String PathForSave;
                        SaveFileDialog saveDialog = new SaveFileDialog();
                        saveDialog;
                        saveDialog.Filter = ".jpg | *.jpg | .png | *.png";

                        saveDialog.AddExtension = false; //это не помогает
                        saveDialog.FileName = "rectScreen";

                        if (saveDialog.ShowDialog(this) == DialogResult.OK)
                        {
                            
                            PathForSave = saveDialog.FileName;
                            
                            bmp.Save(PathForSave); 
                        }
                    }
                    this.Owner.Close();
                }
            }
        }




Код

        public Bitmap CaptureScreenFromRect(Rectangle rect)
        {
            String formatFile = String.Empty;
            Bitmap bmpScreenshot;
            Graphics gfxScreenshot;

            bmpScreenshot = new Bitmap(rect.Width, rect.Height, PixelFormat.Format32bppRgb);

            gfxScreenshot = Graphics.FromImage(bmpScreenshot);

            gfxScreenshot.CopyFromScreen(rect.X, rect.Y, 0, 0,
                rect.Size, CopyPixelOperation.SourceCopy);

            return bmpScreenshot;
        }




Это сообщение отредактировал(а) CasperSC - 7.4.2010, 09:59
PM MAIL   Вверх
Certain
Дата 7.4.2010, 17:29 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


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

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



У Вас Vista? На XP запустил Ваш код, все работает, ничего не добавляется автоматически.
Хотя скорее всего дело во Framework`e, под 3.5 работает нормально

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


Бывалый
*


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

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



Тему создавал, не под тот вопрос, а потом его решил и появился новый, код то работает, но вот как устранить, то что я описал выше, чтобы при смене расширения, не добалялось новое поверх старого, ну в первом посте на картинке видно и думаю сразу понятно, про что я.
Windows 7 у меня и всё в последних обновлениях.

Это сообщение отредактировал(а) CasperSC - 7.4.2010, 20:07
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Прежде чем создать тему, посмотрите сюда:
mr.DUDA
THandle

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


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

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


 




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


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

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