Сделал метод, который получает список файлов (ссылок)
private Process _process = new Process();
// Создание ссылки
private void CreateLink(string pathFolder, List<LinkLabel> listLinkedLabelFile)
{
var selectedExtension = ExtensionFileComboBox.Text;
string file;
string[] inf = Directory.GetFiles(pathFolder, $"*{selectedExtension}", SearchOption.TopDirectoryOnly);
for (var i = 0; i < inf.Length; i++)
{
file = Path.GetExtension(inf[i]);
listLinkedLabelFile.Add(new LinkLabel()
{
Text = inf[i],
Location = new Point(0, i * 15),
AutoSize = true,
Font = new Font("Calibri", 10),
VisitedLinkColor = Color.Maroon,
LinkColor = Color.MidnightBlue,
LinkBehavior = LinkBehavior.NeverUnderline,
Name = inf[i],
Links =
{
new LinkLabel.Link()
{
Name = inf[i]
}
}
});
}
}
// Возвращает ссылки
private List<LinkLabel> ListPathFileFor()
{
var listPathFile = new List<LinkLabel>();
var pathComboBox = FolderPathComboBox.Text;
CreateLink(pathComboBox, listPathFile);
return listPathFile;
}
//Выводит список
private void DisplayResultButton_Click(object sender, EventArgs e)
{
ListOpenFoldersFile(ListPathFileFor());
}
// Передаёт ссылки в RichTextBox
private void ListOpenFoldersFile(List<LinkLabel> listLinked)
{
foreach (var item in listLinked)
{
InfoWindowRich.Controls.Add(item);
InfoWindowRich.LinkClicked += InfoWindowRich_LinkClicked;
InfoWindowRich.Font = new Font("Calibri", 15);
InfoWindowRich.DetectUrls = true;
InfoWindowRich.SelectionStart = InfoWindowRich.Text.Length;
InfoWindowRich.ScrollToCaret();
}
}
// В этот метод не поподает
private void InfoWindowRich_LinkClicked(object sender, LinkClickedEventArgs e)
{
_process = Process.Start(e.LinkText);
}
Пробовал иницизировать в InfoWindowRich.LinkClicked += InfoWindowRich_LinkClicked;
в
public Form1()
{
InitializeComponent();
InfoWindowRich.LinkClicked += InfoWindowRich_LinkClicked;
}
тоже не работает.
Почему не по подает в метод InfoWindowRich_LinkClicked
не пойму.
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
this.StartPosition = FormStartPosition.CenterScreen;
this.Text = "Пример";
this.Load += Form1_Load;
}
private void Form1_Load(object sender, EventArgs e)
{
//готовим ссылки
LinkLabel linkLabel1 = new LinkLabel
{
Location = new Point(0, 10),
Text = "Ссылка 1",
Links = { new LinkLabel.Link { Name = "Ссылка1" } },
};
LinkLabel linkLabel2 = new LinkLabel
{
Location = new Point(0, 45),
Text = "Ссылка 2",
Links = { new LinkLabel.Link { Name = "Ссылка2" } },
};
//подписываеся на клики по ссылкам, метод один и тот же
linkLabel1.Click += LinkLabel_Click;
linkLabel2.Click += LinkLabel_Click;
//отображаем ссылки
_richTextBox.Controls.Add(linkLabel1);
_richTextBox.Controls.Add(linkLabel2);
}
private void LinkLabel_Click(object sender, EventArgs e)
{
//приводим к нужному типу
var linkLabel = sender as LinkLabel;
if (linkLabel == null)
return;
var message = $"Вы выбрали ссылку: {linkLabel.Links[0].Name}";
MessageBox.Show(message, "Сообщение",
MessageBoxButtons.OK, MessageBoxIcon.Information);
}
}
Айфон мало держит заряд, разбираемся с проблемой вместе с AppLab
Перевод документов на английский язык: Важность и ключевые аспекты
Помогите, пожалуйста, разобраться с проблемой вызова Partial View
Всех приветствуюМне нужно вводить определенные данные в текстовые поля сайта после загрузки страницы