C# 动态生成的LinkLabels-将唯一信息传递给处理程序
我想做的是: 生成一个可单击链接列表,当您单击它们时,它们会在旁边显示一个关于它们的更详细窗口 我搞不懂的是如何在点击链接标签后识别它 以下是我目前的代码:C# 动态生成的LinkLabels-将唯一信息传递给处理程序,c#,linklabel,C#,Linklabel,我想做的是: 生成一个可单击链接列表,当您单击它们时,它们会在旁边显示一个关于它们的更详细窗口 我搞不懂的是如何在点击链接标签后识别它 以下是我目前的代码: if (reader.HasRows) { lore_output_panel.Controls.Clear(); string lore_search_returns = ""; int i = 0; LinkLabel[] i
if (reader.HasRows)
{
lore_output_panel.Controls.Clear();
string lore_search_returns = "";
int i = 0;
LinkLabel[] itemfound = new LinkLabel[20];
while (reader.Read() && i < 20)
{
itemfound[i] = new LinkLabel();
itemfound[i].Text = reader["name"].ToString();
Point p = new Point(0, 0 + (15 * i));
itemfound[i].Location = p;
itemfound[i].Visible = true;
itemfound[i].AutoSize = true;
itemfound[i].Show();
itemfound[i].Name = "loreitem" + i;
itemfound[i].LinkClicked += new LinkLabelLinkClickedEventHandler(this.linkClicked);
lore_output_panel.Controls.Add(itemfound[i]);
i++;
//lore_search_returns += reader["name"] + "\r\n";
}
lore_output.Text = lore_search_returns;
}
else
{
lore_output.Text = "ITEM NOT FOUND\r\n" + sql;
}
m_dbConnection.Close();
}
private void linkClicked(object sender, LinkLabelLinkClickedEventArgs e)
{
string testname = this.Name;
MessageBox.Show(testname);
}
if(reader.HasRows)
{
lore_output_panel.Controls.Clear();
字符串lore_search_returns=“”;
int i=0;
LinkLabel[]itemfound=新的LinkLabel[20];
while(reader.Read()&&i<20)
{
itemfound[i]=新链接标签();
itemfound[i]。Text=reader[“name”]。ToString();
点p=新点(0,0+(15*i));
itemfound[i]。位置=p;
itemfound[i]。Visible=true;
itemfound[i]。自动大小=true;
itemfound[i].Show();
itemfound[i].Name=“loreitem”+i;
itemfound[i].LinkClicked+=新的LinkLabelLinkClickedEventHandler(此.LinkClicked);
lore_output_panel.Controls.Add(itemfound[i]);
i++;
//知识搜索返回+=读取器[“名称”]+“\r\n”;
}
lore_output.Text=lore_search_返回;
}
其他的
{
lore_output.Text=“未找到项\r\n”+sql;
}
m_dbConnection.Close();
}
私有无效链接已单击(对象发送者,链接标签链接已单击目标)
{
string testname=this.Name;
Show(testname);
}
使用此代码,单击链接时,只显示表单的名称。我需要一些独特的标识符来通过点击,这样我就可以确定哪个链接标签被点击。是否有方法通过单击事件处理程序传递我单击的链接标签的名称
我有一种感觉,这可能与标签有关(如本链接所示),但我不明白。您将表单与实际链接标签混淆了。您可以将发件人强制转换为linkLabel,然后访问其名称,而无需使用tag属性,该属性还可以保存其他数据
e、 g
您将此表单与实际的链接标签混淆。您可以将发件人强制转换为linkLabel,然后访问其名称,而无需使用tag属性,该属性还可以保存其他数据
e、 g
string testName=((LinkLabel)sender).Name代码>谢谢!有没有办法将您的评论标记为答案?string testName=((LinkLabel)sender).Name代码>谢谢!有没有办法将你的评论标记为答案?
private void linkClicked(object sender, LinkLabelLinkClickedEventArgs e)
{
string testname = ((LinkLabel)sender).Name;
MessageBox.Show(testname)
}