我有我的程序有点麻烦。目前,我正在编写一个好友请求脚本,基本上当用户收到好友请求,它会自动将其添加到FlowLayoutPanel
和每个朋友的要求,用户的名字会显示连同接受和拒绝按钮。下面的代码:c#我如何设置按钮ID并在稍后删除它?
foreach (object request in i.ToString())
{
Label userName = new Label();
Button accept = new Button();
Button reject = new Button();
accept.Click += Accept_Click;
reject.Click += Reject_Click;
userName.Text = CultureInfo.CurrentCulture.TextInfo.ToTitleCase(dr["UserFirstName"].ToString() + " " + dr["UserLastName"].ToString());
accept.Text = "Accept";
reject.Text = "Reject";
friendRequestPanel.Controls.Add(userName);
friendRequestPanel.Controls.Add(accept);
friendRequestPanel.Controls.Add(reject);
}
现在的问题是,当用户接受或拒绝的请求,这似乎删除所有的标签和按钮。 代码:
friendRequestPanel.Controls.Remove(UserName); // Label
friendRequestPanel.Controls.Remove(accept); // Button
friendRequestPanel.Controls.Remove(rejects); // Button
我将如何分配一个ID,每个按钮和标签,这样我以后可以删除吗? 是这样的:friendRequestPanel.Controls.Remove(username[ID No]);
您可以将引用冗余存储在一个词典<字符串,对象>,当你想删除它,获得从词典中引用了相应的实例请求。显然,不要忘记从字典中删除它。 –
如果您只想要一个ID,可以使用Tag属性,并在friendRequestPanel.Controls中查找适当的名称以获取要删除的引用。 –
['Name'](https://msdn.microsoft.com/en-us/library/system.windows.forms.control.name(v = vs.110).aspx)属性就是为了这样的用法。您可以为控件指定一个名称,然后使用该名称在其父项的“控件”集合中找到它。 –