Фон
Я создаю набор элементов управления linklabel и label, используя цикл, который использует данные из базы данных в качестве содержимого (текста).
Вопрос
Как мне удалить или изменить там видимость?
Что бы я хотел, чтобы произошло?
В событии нажатия кнопки я хотел бы, чтобы все текстовые свойства ссылки и метки ссылки были установлены либо равными нулю, либо их свойства видимости были установлены как ложные.
Код
private void getInfoStationID()
{
//SQL Connection Stuff
for (int i = 0; i <= rowCount - 1; i++)
{
LinkLabel Linklabel = new LinkLabel();
Linklabel.Text = ds.Tables[0].Rows[i] ["code"].ToString();
Linklabel.Height = 15;
Linklabel.Width = 50;
Linklabel.AutoSize = true;
Linklabel.Location = new Point(10, (i + 1) * 30);
tabControl1.TabPages[0].Controls.Add(Linklabel);
// Add an event handler to do something when the links are clicked.
Linklabel.LinkClicked += new System.Windows.Forms.LinkLabelLinkClickedEventHandler(this.linkLabel1_LinkClicked);
Label label1 = new Label();
label1.Text = ds.Tables[0].Rows[i]["name"].ToString();
label1.Height = 15;
label1.Width = 70;
label1.Location = new Point(100, (i + 1) * 30);
tabControl1.TabPages[0].Controls.Add(label1);
Label label3 = new Label();
label3.Text = ds.Tables[0].Rows[i]["toc"].ToString();
label3.Height = 15;
label3.Width = 50;
label3.Location = new Point(240, (i + 1) * 30);
tabControl1.TabPages[0].Controls.Add(label3);
}
}
private void clearAllBtn_Click(object sender, EventArgs e)
{
//Would like this to clear all previously drawn labels and linklabels
}
Controls Class
в зависимости от вашей логики, вы могли бы использовать/реализовать конструкцию типаforeach(Controls ctrl in Controls){}
и делать то, что вам нужно, проверяя, конечно, что тип элемента управления LinkLabelStackoverflow
имеет тонны примеров того, как использовать класс Controls в цикле foreach. Это также можно сделать с помощью лямбда-оператора. - person MethodMan   schedule 27.01.2015