@Deni74

Как осуществить просмотр фалов в категории и открытие их в самое программе C#?

Суть такая. Переходя в определенную вкладку в tabControl пользователь сразу видит два окна. Слева отображаются фалы из определенной папки расширения .pdf (было бы прекрасно, если были бы другие расширения). Выбирая любое название открывается слева файлик, где пользователь просто может смотреть его без изменений. Подскажите, пожалуйста, как это можно сделать?

fb9b6af4d3ff426e86f81e381c2cec4e.png155087f089af488280d93e49c4b4521a.png
  • Вопрос задан
  • 175 просмотров
Решения вопроса 1
JohnnyGat
@JohnnyGat
Стараюсь писать код, понятный человеку.
Пока только для pdf-файлов. Для файлов Word'а придумал вариант только с конвертированием файла в pdf и отображение на экран уже pdf-файла.

Скрин
93a830ac35894bb085135c3f80f5c5b7.png


На форме:
- Элемент TabControl (tabControl1)
- На вкладке tabPage1 элемент Button (button1)
- На вкладке tabPage2 элементы ListView (listView1) (в дизайнере свойству View установить значение List) и WebBrowser (webBrowser1)

Обработчик нажатия кнопки button1:
private void button1_Click(object sender, EventArgs e)
{
    // перейти во вторую вкладку
    tabControl1.SelectTab(1);

    // очистить отображаемый список файлов
    listView1.Items.Clear();

    // отобразить список pdf-файлов из директории
    foreach (string file in Directory.GetFiles(@"H:\Test\333", "*.pdf"))
    {
        listView1.Items.Add(new ListViewItem() { Text = Path.GetFileName(file), Tag = file });
    }
}

Список файлов состоит из экземпляров класса "ListViewItem".
Свойство "Text" - то что отображается на экране, в данном случае это имя файла и расширение (без полного пути к файлу) (получаем с помощью функции Path.GetFileName).
Свойство "Tag" предназначено для пользовательских данных, в данном случае будем хранить там полный путь к файлу.

Обработчик события выбора файла:
private void listView1_SelectedIndexChanged(object sender, EventArgs e)
{
    // потому что при смене выбранного значения этот обработчик ловит ситуацию когда число выделенных элементов равно нулю, данный "костыль" нужен как раз для таких случаев
    if (listView1.SelectedIndices.Count <= 0)
        return;

    // вывести содержимое файла на экран
    webBrowser1.Navigate(listView1.SelectedItems[0].Tag.ToString());
}
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы