Вывожу в RichTextBox список LinkLabel-ов.
Всё норм! Но если в папке много файлов то получается так
То что не влезло в экран не видно и не как не добраться. Если сделать на весь экран, ссылок станет больше. Но опять же, если они не помещаются в экран, их не видно и добраться до них, ни как нельзя.
Пробовал так:
// Метод для вывода ссылок
private void ListOpenFoldersFile(List<LinkLabel> listLinked)
{
InfoWindowRich.Controls.Clear();
foreach (var item in listLinked)
{
item.Click += LinkedLabelClicked;
InfoWindowRich.Controls.Add(item);
// Скролл
InfoWindowRich.SelectionStart = item.Text.Length;
InfoWindowRich.ScrollToCaret();
}
}
// Формирование ссылок
public void CreateLinkLabel(string pathFolder, List<LinkLabel> listLinkedLabelFile, string selectedExtension)
{
string[] inf = Directory.GetFiles(pathFolder, $"*{selectedExtension}", SearchOption.TopDirectoryOnly);
for (var i = 0; i < inf.Length; i++)
{
listLinkedLabelFile.Add(new LinkLabel()
{
Text = inf[i],
Location = new Point(0, i * 20),
AutoSize = true,
Font = new Font("Segoe UI", 13), //Segoe UI Semibold; 11,25pt; style=Bold
VisitedLinkColor = Color.FromArgb(52, 73, 94),
LinkColor = Color.FromArgb(51, 51, 51), // 255, 215, 71 yellow rgb(52, 152, 219) url
ActiveLinkColor = Color.FromArgb(52, 73, 94),
LinkBehavior = LinkBehavior.NeverUnderline,
Name = inf[i],
Links =
{
new LinkLabel.Link()
{
Name = inf[i]
}
}
});
}
// При нажатии на ссылку
private void LinkedLabelClicked(object sender, EventArgs e)
{
var linkLabel = sender as LinkLabel;
if (linkLabel == null)
return;
linkLabel.LinkVisited = true;
Process.Start(linkLabel.Links[0].Name);
}
Так же пробовал включать разные настройки в дизайнере, не чего не помогло. Как можно решить данную проблему? Может кто сталкивался?
Я предполагаю, что ссылки выводятся в окно RichTextBox, но находятся по верх элемента RichTextBox. По этому и настройки не применяться. Но как решить не пойму.
Скорее всего RichTextBox и ListBox не предназначены для таких целей.Так как, они видимо могут определять только текстовую информацию, а я передaвал объекты LinkLabel.
Проблему решил с помощью Panel. Заменил RichTextBox на Panel
InfoWindowRich.Controls.Add(item); на panel1.Controls.Add(item); и в свойствах включил AutoScroll.
Основные этапы разработки сайта для стоматологической клиники
Продвижение своими сайтами как стратегия роста и независимости