나는 다음과 같은 코드에 문제가 꾸게에 LinkLabels를 추가 :는 동적으로 TableLayoutPanel
namespace Viewer
{
public partial class Form1 : Form
{
int count = 0;
LinkLabel[] linkLabel = new LinkLabel[200];
string filename;
string extension;
string filepath;
private void btnLoad_Click(object sender, EventArgs e)
{
// Creates a Directory for the Movies Folder
DirectoryInfo myDirectory = new DirectoryInfo(@"C:\Users\User\Movies");
// Creates a list of "File info" objects
List<FileInfo> ls = new List<FileInfo>();
// Adds filetypes to the list
ls.AddRange(myDirectory.GetFiles("*.mp4"));
ls.AddRange(myDirectory.GetFiles("*.avi"));
// Orders the list by Name
List<FileInfo> orderedList = ls.OrderBy(x => x.Name).ToList();
// Loop through file list to act on each item
foreach (FileInfo filFile in orderedList)
{
// Creates a new link label
linkLabel[count] = new LinkLabel();
// Alters name info for display and file calling
filepath = filFile.FullName;
extension = filFile.Extension;
filename = filFile.Name.Remove(filFile.Name.Length - extension.Length);
// Write to the textbox for functional display
textBox1.AppendText(filename + "\r\n");
// Alters link label settings
linkLabel[count].Text = filename;
linkLabel[count].Links.Add(0, linkLabel[count].Text.ToString().Length, filepath);
linkLabel[count].LinkClicked += new LinkLabelLinkClickedEventHandler(LinkedLabelClicked);
// Adds link label to table display
tblDisplay.Controls.Add(linkLabel[count]);
// Indexes count up for arrays
count = count + 1;
}
}
private void LinkedLabelClicked(object sender, LinkLabelLinkClickedEventArgs e)
{
System.Diagnostics.Process.Start(filepath);
}
}
}
내 목표는 내가 발사에 추가 모든 미디어 파일에 대한 링크의 테이블을 생성하는 것입니다, 그리고 링크를 통해 해당 플레이어의 파일을 열 수 있습니다.
현재로서는 모든 링크가 제대로 생성되지만, 링크를 클릭 할 때마다 목록의 마지막 항목이 실행됩니다.
예를 들어, 링크에 "300", "Gladiator"및 "Top Gun"이 포함되어 있으면 내가 클릭 한 링크와 상관없이 "Top Gun"이 열립니다.
최종 상태 인 click 이벤트에서 변수 "filepath"를 호출하는 것과 관련이 있다고 가정합니다. 그러나, 나는 각 링크마다 고정 링크 값 또는 동작을 생성하는 방법에 대해 명확하지 않습니다. 연구 한 모든 대답은 동적 링크 업이 아닌 단일 링크 레이블 상황과 관련되어 있습니다.
도움/조언을 보내 주시면 감사하겠습니다.
을이 경로를 얻을! 나는 Tag 속성에 대해 더 많이 연구해야 할 것이다. 나는이 사실을 알지도 못했다. 꽤 유용하게 보입니다. 고마워요! –