Форум программистов, компьютерный форум, киберфорум
C# Windows Forms
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.83/18: Рейтинг темы: голосов - 18, средняя оценка - 4.83
29 / 29 / 2
Регистрация: 17.12.2012
Сообщений: 493

Открытие PDF-файла через поиск по названию ячейки DataGridView

25.05.2018, 05:04. Показов 3882. Ответов 17
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Привет всем.
Как сделать так , чтобы по нажатию на запись в гриде (фото прилагается) , затем по нажатию на кнопку открывался файл с указанным именем - т.е. ячейка первого столбца «номер документа» это и есть имя файла с расширением .pdf, путь к месторасположению файлов на диске есть. Какой код прописать в событии button_click?
Миниатюры
Открытие PDF-файла через поиск по названию ячейки DataGridView  
0
Лучшие ответы (1)
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
25.05.2018, 05:04
Ответы с готовыми решениями:

Поиск и открытие файла word по названию из ячейки
У меня есть код который, ищет и открывает excel файл по значению из ячейки: Sub find() Dim f As String, folder As String, file_name...

Открытие файла по названию из ячейки Excel
Добрый день. Помогите написать макрос для кнопки. Суть такая- выделил ячейку, нажал кнопку. Макрос должен найти в определенной папке...

Открытие PDF файла через нажатие кнопки
Как открыть PDF файл в среде Lazarus стандартными средствами Windows (у меня по умолчанию Chrome, это не важно), на событие нажатия кнопки,...

17
 Аватар для Aferuga
645 / 529 / 324
Регистрация: 20.05.2015
Сообщений: 1,471
25.05.2018, 05:32
Как-то так:
Кликните здесь для просмотра всего текста
C#
1
2
3
4
5
6
7
8
9
10
11
            string root = "c:\\";
               int     y = dataGridView1.CurrentCellAddress.Y;
               string     filename = root+ dataGridView1.Rows[y].Cells["filename_col"].Value.ToString();
 
            if (File.Exists(filename) == true)
            {
                var proc = new System.Diagnostics.Process();
                proc.StartInfo.FileName = filename;
                proc.StartInfo.UseShellExecute = true;
                proc.Start();
            }
0
29 / 29 / 2
Регистрация: 17.12.2012
Сообщений: 493
25.05.2018, 05:40  [ТС]
Aferuga, ругается на filename.Exists в условии , нет таких функций , может библиотеку надо какую добавить ?
0
 Аватар для Aferuga
645 / 529 / 324
Регистрация: 20.05.2015
Сообщений: 1,471
25.05.2018, 05:43
Цитата Сообщение от Alexandr1966 Посмотреть сообщение
библиотеку надо какую добавить ?
Все верно:
C#
1
using System.IO;
0
29 / 29 / 2
Регистрация: 17.12.2012
Сообщений: 493
25.05.2018, 05:52  [ТС]
Aferuga, не срабатывает что-то , фото прилагаю.
Создал в базе данных запись , 123 первая ячейка имя, потом с таким же именем файл положил пдф в D:\\ и не открывает, ничего не происходит
Миниатюры
Открытие PDF-файла через поиск по названию ячейки DataGridView   Открытие PDF-файла через поиск по названию ячейки DataGridView   Открытие PDF-файла через поиск по названию ячейки DataGridView  

0
 Аватар для Aferuga
645 / 529 / 324
Регистрация: 20.05.2015
Сообщений: 1,471
25.05.2018, 05:57
Скорее всего ему расширения в названии файла не хватает.
0
29 / 29 / 2
Регистрация: 17.12.2012
Сообщений: 493
25.05.2018, 05:59  [ТС]
Aferuga, и куда расширение дописать ?
0
 Аватар для Aferuga
645 / 529 / 324
Регистрация: 20.05.2015
Сообщений: 1,471
25.05.2018, 06:02
Лучший ответ Сообщение было отмечено Alexandr1966 как решение

Решение

Здесь оно уже должно быть:
C#
1
 string filename = root+ dataGridView1.Rows[y].Cells["filename_col"].Value.ToString()+".pdf";
1
29 / 29 / 2
Регистрация: 17.12.2012
Сообщений: 493
25.05.2018, 08:03  [ТС]
Aferuga, спасибо большое , все заработало ))

Добавлено через 3 минуты
Aferuga, а если допустим файл спрятан в папке на диске , как в коде прописать так, чтобы по всему диску искал этот файл ?

Добавлено через 1 час 56 минут
Aferuga, ?
0
 Аватар для Aferuga
645 / 529 / 324
Регистрация: 20.05.2015
Сообщений: 1,471
25.05.2018, 08:17
Alexandr1966,
Кликните здесь для просмотра всего текста
C#
1
2
3
4
5
6
7
8
9
            
using System.IO;
....
DirectoryInfo di = new DirectoryInfo("c:\\");
            string search = "1.pdf";
            foreach (FileInfo fi in di.EnumerateFiles(search, SearchOption.AllDirectories))
            {
                listBox1.Items.Add(fi.FullName);
            }
0
29 / 29 / 2
Регистрация: 17.12.2012
Сообщений: 493
25.05.2018, 11:35  [ТС]
Aferuga, у меня не листбокс а грид , красным горит items, плюс имя файла у вас 1.pdf , , а нужно чтобы из ячейки запись вставала перед .pdf при нажатии на нее
Миниатюры
Открытие PDF-файла через поиск по названию ячейки DataGridView  
0
29 / 29 / 2
Регистрация: 17.12.2012
Сообщений: 493
28.05.2018, 02:38  [ТС]
Aferuga, ?
0
 Аватар для Aferuga
645 / 529 / 324
Регистрация: 20.05.2015
Сообщений: 1,471
28.05.2018, 03:49
Цитата Сообщение от Alexandr1966 Посмотреть сообщение
красным горит items,
Правильно горит потому что у него нет такой коллекции.
Alexandr1966, Я лишь показывал принцип, и не думал что вы собираетесь его так использовать. Просто при поиске он может найти скажем два одинаковых файла и какой он из них выберет? Поэтому лучше в базе хранить полный путь, чтобы не было разночтений.

Добавлено через 8 минут
Цитата Сообщение от Alexandr1966 Посмотреть сообщение
красным горит items,
Правильно горит потому что у него нет такой коллекции.
Alexandr1966, Я лишь показывал принцип, и не думал что вы собираетесь его так использовать. Просто при поиске он может найти скажем два одинаковых файла и какой он из них выберет? Поэтому лучше в базе хранить полный путь, чтобы не было разночтений.
0
29 / 29 / 2
Регистрация: 17.12.2012
Сообщений: 493
28.05.2018, 04:31  [ТС]
Aferuga, так как сделать то чтобы для моего примера работало все верно ?
1. Я нажимаю на запись в гриде
2. То что написано в первом столбце в ячейке - этот текст как название файла должно передаться в код перед .pdf
3. Должен осуществиться поиск по указанной директории , файл .pdf находится и сразу открывается
0
 Аватар для Aferuga
645 / 529 / 324
Регистрация: 20.05.2015
Сообщений: 1,471
28.05.2018, 06:55
Alexandr1966, Предположим на диске c:\ лежит два файла:
с:\123.pdf
c:\Новая папка\123.pdf
вы передаете в поиск 123 и поиск по всему диску с:\
Вопрос какой файл он должен показать первый или второй?
0
29 / 29 / 2
Регистрация: 17.12.2012
Сообщений: 493
30.05.2018, 05:42  [ТС]
Aferuga, все названия файлов , которые будет искать моя программа - уникальны
0
 Аватар для Aferuga
645 / 529 / 324
Регистрация: 20.05.2015
Сообщений: 1,471
30.05.2018, 06:09
Цитата Сообщение от Alexandr1966 Посмотреть сообщение
которые будет искать моя программа - уникальны
Ладно, тогда пусть будет так:
Кликните здесь для просмотра всего текста
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
string root = "c:\\";
int     y = dataGridView1.CurrentCellAddress.Y;
DirectoryInfo di = new DirectoryInfo(root);
            string search = dataGridView1.Rows[y].Cells["filename_col"].Value.ToString()+".pdf";
            FileInfo fi = di.EnumerateFiles(search, SearchOption.AllDirectories).FirstOrDefault();//первый попавшийся
 
            if (fi != null)
            {
                var proc = new System.Diagnostics.Process();
                proc.StartInfo.FileName = fi.FullName;
                proc.StartInfo.UseShellExecute = true;
                proc.Start();
            }
1
29 / 29 / 2
Регистрация: 17.12.2012
Сообщений: 493
31.05.2018, 02:40  [ТС]
Aferuga, работает , благодарю за помощь!
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
31.05.2018, 02:40
Помогаю со студенческими работами здесь

Поиск по названию из ячейки
в общем дело вот в чем. Есть первая форма, в которую вводятся данные, которые в конечном счете при нажатии кнопки "Добавить"...

Поиск ячейки в выбранной строке по названию
Как осуществить следующую вещь? Нужно в отдельном поле выводить значение полученной ячейки. Ячейка получается следующим образом:...

Открытие файла по названию, введённому с клавиатуры
char name,str; printf("Введите название файла: "); scanf_s("%s", &name); FILE *in; in =...

Индекс выбранной ячейки DataGridView при смене ячейки через Tab
Добрый день, Коллеги! Подскажите, как получить индекс ячейки в DataGridWiew, находящейся в фокусе (выбранной ячейки) при переходе по...

Открытие pdf через WebView
Доброго времени суток. Появилась необходимость открыть pdf файл на WinForms C#. Файл открывается 1 раз через 10.. При чем не ясно при...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
18
Ответ Создать тему
Новые блоги и статьи
SDL3 для Web (WebAssembly): Идентификация объектов на Box2D v3 - использование userData и событий коллизий
8Observer8 02.03.2026
Содержание блога Финальная демка в браузере. Итоговый код: finish-collision-events-sdl3-c. zip https:/ / www. cyberforum. ru/ blog_attachment. php?attachmentid=11680&d=1772460536 Одним из. . .
Реалии
Hrethgir 01.03.2026
Нет, я не закончил до сих пор симулятор. Эта задача сложнее. Не получилось уйти в плавсостав, но оно и к лучшему, возможно. Точнее получалось - но сварщиком в палубную команду, а это значит, в моём. . .
Ритм жизни
kumehtar 27.02.2026
Иногда приходится жить в ритме, где дел становится всё больше, а вовлечения в происходящее — всё меньше. Плотный график не даёт вниманию закрепиться ни на одном событии. Утро начинается с быстрых,. . .
SDL3 для Web (WebAssembly): Сборка библиотек: SDL3, Box2D, FreeType, SDL3_ttf, SDL3_mixer и SDL3_image из исходников с помощью CMake и Emscripten
8Observer8 27.02.2026
Недавно вышла версия 3. 4. 2 библиотеки SDL3. На странице официальной релиза доступны исходники, готовые DLL (для x86, x64, arm64), а также библиотеки для разработки под Android, MinGW и Visual Studio. . . .
SDL3 для Web (WebAssembly): Реализация движения на Box2D v3 - трение и коллизии с повёрнутыми стенами
8Observer8 20.02.2026
Содержание блога Box2D позволяет легко создать главного героя, который не проходит сквозь стены и перемещается с заданным трением о препятствия, которые можно располагать под углом, как верхнее. . .
Конвертировать закладки radiotray-ng в m3u-плейлист
damix 19.02.2026
Это можно сделать скриптом для PowerShell. Использование . \СonvertRadiotrayToM3U. ps1 <path_to_bookmarks. json> Рядом с файлом bookmarks. json появится файл bookmarks. m3u с результатом. # Check if. . .
Семь CDC на одном интерфейсе: 5 U[S]ARTов, 1 CAN и 1 SSI
Eddy_Em 18.02.2026
Постепенно допиливаю свою "многоинтерфейсную плату". Выглядит вот так: https:/ / www. cyberforum. ru/ blog_attachment. php?attachmentid=11617&stc=1&d=1771445347 Основана на STM32F303RBT6. На борту пять. . .
Камера Toupcam IUA500KMA
Eddy_Em 12.02.2026
Т. к. у всяких "хикроботов" слишком уж мелкий пиксель, для подсмотра в ESPriF они вообще плохо годятся: уже 14 величину можно рассмотреть еле-еле лишь на экспозициях под 3 секунды (а то и больше),. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru