powered by simpleCommunicator - 2.0.51     © 2025 Programmizd 02
Форумы / WinForms, .Net Framework [игнор отключен] [закрыт для гостей] / Как в окне создать ссылку на файл?
25 сообщений из 26, страница 1 из 2
Как в окне создать ссылку на файл?
    #39686740
vlsaf
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Подскажите, как в окне создать ссылку на файл, расположенный на локальном компе? Примерно, такую, как на рисунке. Хотел использовать это , но в версии .Net Franework 4.7 и выше этот проект уже не работает, как положено.

Есть ли другие варианты?
...
Рейтинг: 0 / 0
Как в окне создать ссылку на файл?
    #39686752
BlackEric
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
vlsaf,

Компонент какой используется для отображения текста со ссылкой?

Вот решение для RichTextBox
...
Рейтинг: 0 / 0
Как в окне создать ссылку на файл?
    #39686758
Фотография Shocker.Pro
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
vlsafрасположенный на локальном компе?Проблема создать текст со ссылкой? Или проблема в локальном файле?
...
Рейтинг: 0 / 0
Как в окне создать ссылку на файл?
    #39686763
Фотография Shocker.Pro
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
По идее можно разместить WPF-ный текст с любыми его возможностями через ElementHost, но лично я это этого не пробовал, не знаю, какие там могут быть грабли.
...
Рейтинг: 0 / 0
Как в окне создать ссылку на файл?
    #39686765
vlsaf
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Обычный RichTextBox создает ссылки, начинающиеся на http://, ftp:// и др. стандартные URL адреса. Но нужно организовать ссылку на локальный файл, например на С:\docs\myDoc.txt

Как это сделать?

Проблема создать текст с такой ссылкой.
...
Рейтинг: 0 / 0
Как в окне создать ссылку на файл?
    #39686767
Фотография Shocker.Pro
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
vlsafссылки, начинающиеся на http://, ftp:// и др.а ссылку file:///С:/docs/myDoc.txt нельзя создать?
...
Рейтинг: 0 / 0
Как в окне создать ссылку на файл?
    #39686779
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
vlsafПроблема создать текст с такой ссылкой.
Можно и в другой плоскости.
Проблема в клике обработчике на фразе.
Саму ссылку создать стилем синий.
...
Рейтинг: 0 / 0
Как в окне создать ссылку на файл?
    #39686790
vlsaf
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ссылку на файл создать можно. Но есть важный нюанс. Путь к файлу м.б. очень длинным. И этот путь надо как-то скрыть от глаз. И только по щелчку (событию LinkClicked) уметь этот путь вытаскивать. А сейчас это выглядит скверно:
...
Рейтинг: 0 / 0
Как в окне создать ссылку на файл?
    #39686792
vlsaf
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Должно быть так:
----
Файл
----
...
Рейтинг: 0 / 0
Как в окне создать ссылку на файл?
    #39687041
Сон Веры Павловны
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
WPF'ный AvalonEdit так может. Ссылка задается с помощью псевдоразметки а-ля bb-коды примерно вот в таком виде:

Код: plaintext
Это какой-то текст с файловой\r\nссылкой в тексте <file=- вот она>D:\\Trash\\1.txt</file>. И еще\r\nнемного текста.
Результат показан ниже. По клику на ссылку появляется MessageBox, в котором путь к файлу.
...
Рейтинг: 0 / 0
Как в окне создать ссылку на файл?
    #39687317
vlsaf
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Это уже похоже на правду )))
К WinForm сложно прикрутить?
Никогда еще WPF-ные контролы к WInForms не прикручивал.
OK. Спасибо! посмотрю...
...
Рейтинг: 0 / 0
Как в окне создать ссылку на файл?
    #39687331
Фотография buser
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
vlsaf, на винформс также есть ричтекстбокс.... и он также понимает формат rtf...
...
Рейтинг: 0 / 0
Как в окне создать ссылку на файл?
    #39687360
Сон Веры Павловны
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Вообще, самый простой в данном случае способ, если текст нередактируемый (а как он может быть редактируемым при наличии таких ссылок?) - шлепнуть на форму WebBrowser, задать ему html со ссылками, и захэндлить у этих ссылок событие клика:
Код: c#
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
public partial class Form1 : Form
{
  public Form1()
  {
    InitializeComponent();
    webBrowser1.DocumentText = @"
      <p style='font-family: Verdana; font-size: 12px'>
        это какой-то текст
        <br/>
          с файловой
          <a href=""D:\Trash\1.txt"">ссылкой.</a>
        <br/>
        И еще текст
      </p>";
    webBrowser1.DocumentCompleted += (s, e) =>
    {
      foreach (var link in webBrowser1.Document.Links.Cast<HtmlElement>())
        link.Click += LinkClick;
    };
  }

  static void LinkClick(object sender, EventArgs ea)
  {
    if (!(sender is HtmlElement he)) return;
    MessageBox.Show(he.GetAttribute("href"));
  }
}


- будет ровно то же самое:
...
Рейтинг: 0 / 0
Как в окне создать ссылку на файл?
    #39687366
Фотография Shocker.Pro
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Сон Веры Павловнысамый простойно и самый "тяжелый". Браузер грузится заметное время
...
Рейтинг: 0 / 0
Как в окне создать ссылку на файл?
    #39687417
vlsaf
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Текст формируется по мере работы программы. Что-то типа протокола с активными ссылками. По мере работы программы кол-во строк нарастает и в конце получается текст, который нужно скроллить бегунком.

Вопрос в том, где проще формировать ссылки и можно ли по мере работы программы уходить в низ текста с тем, чтобы текст уходит как бы наверх. (автоскролл).
...
Рейтинг: 0 / 0
Как в окне создать ссылку на файл?
    #39687460
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
vlsafВопрос в том, где проще формировать ссылкину первый же вариант это richXXXXX компонент. Тебе же сказали.
vlsafчтобы текст уходит как бы наверх. (автоскролл).
С чего решил что это вообще проблема?
Не получилось что то?
Пора уже пробовать)).
...
Рейтинг: 0 / 0
Как в окне создать ссылку на файл?
    #39687826
Сон Веры Павловны
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Еще достаточно несложный вариант - использовать WPF'ный RichTextBox с контентом в виде FlowDocument, внутри которого один параграф - просто в Inlines этого параграфа засовывать текст/ссылки/переводы строк. Тестовый проект в аттаче.
...
Рейтинг: 0 / 0
Как в окне создать ссылку на файл?
    #39687827
Сон Веры Павловны
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Вот.
...
Рейтинг: 0 / 0
Как в окне создать ссылку на файл?
    #39687830
vlsaf
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Сон Веры Павловны , огромное спасибо. Особенно за работающий пример. Тут и использование ElementHost и WPF-ный RichTextBox и пример работы со ссылками.

Снимаю шляпу )))
...
Рейтинг: 0 / 0
Как в окне создать ссылку на файл?
    #39688058
Roman Mejtes
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Вместо того, чтоб использовать тяжеловесный RTB имеет смысл использовать легковесный TextBlock, который так же предоставляет возможности форматирования :
Код: xml
1.
2.
3.
4.
5.
6.
<TextBlock>
	<Run Text="Send to"/>
	<Hyperlink NavigateUri ="mailto:roman@meytes.ru">
		<Run Text="Roman Meytes"/>
	</Hyperlink>
</TextBlock>
...
Рейтинг: 0 / 0
Как в окне создать ссылку на файл?
    #39688125
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Roman Mejtes,
Ещё круче!
Мы забыли что wpf это html.
...
Рейтинг: 0 / 0
Как в окне создать ссылку на файл?
    #39688152
Сон Веры Павловны
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Только в текстблоке, например, не получится выделить и скопировать текст. И если для копирования всего текста худо-бедно можно прикрутить кнопку, то с выделением-копированием части текста вообще ой. Ну, и еще придется немного поплясать со скроллингом вниз по мере добавления текста.
...
Рейтинг: 0 / 0
Как в окне создать ссылку на файл?
    #39688172
Roman Mejtes
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Сон Веры ПавловныТолько в текстблоке, например, не получится выделить и скопировать текст. И если для копирования всего текста худо-бедно можно прикрутить кнопку, то с выделением-копированием части текста вообще ой. Ну, и еще придется немного поплясать со скроллингом вниз по мере добавления текста.
плясать со скроллингом не надо, надо просто включить перенос текста в TextBlock и засунуть его в ScrollViewer. На счет выделения, автор такого требования не писал вроде. Если выделение не нужно, использовать RTB смысла не имеет, как мне кажется. Это всё равно, что стрелять из пушки по воробьям :)
...
Рейтинг: 0 / 0
Как в окне создать ссылку на файл?
    #39688497
vlsaf
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Roman MejtesНа счет выделения, автор такого требования не писал вроде.Действительно не писал. Однако подразумевал )))
Работа в большой организации подразумевает пересылку части протокола коллегам.
Но я выражаю благодарность вам, Roman Mejtes , за хорошую идею. Наверняка в каких-то проектах можно будет ее использовать.
...
Рейтинг: 0 / 0
Как в окне создать ссылку на файл?
    #39688568
Сон Веры Павловны
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
vlsafОднако подразумевал
В таком случае, в том тестовом проекте, который я аттачил выше, вложенный приватный класс LinksView.LinkCommand надо сделать не вложенным и public, иначе, если в область копирования попадет гиперссылка, то при копировании вылетит ошибка о невозможности сериализации типа LinksView+LinkCommand.
...
Рейтинг: 0 / 0
25 сообщений из 26, страница 1 из 2
Форумы / WinForms, .Net Framework [игнор отключен] [закрыт для гостей] / Как в окне создать ссылку на файл?
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]