我的代碼遍歷檔案夾中的所有檔案,然后為它們制作標簽。但在此之前,您需要使用FolderBrowserDialog. 我想讓它這樣:當有一個檔案夾ALREADY在程式中打開,我可以清除所有這些標簽,以便有足夠的空間用于新一批的標簽。代碼:
foreach(string song in files)
{
Label songLab = new Label();
songLab.Padding = new Padding(6);
songLab.AutoSize = true;
songLab.Location = new Point(prevX 10, prevY 20);
songLab.Click = (o, e2) =>
{
MessageBox.Show("You Clicked " songLab.Text);
};
songLab.MouseEnter = (o, e3) =>
{
Cursor = Cursors.Hand;
songLab.ForeColor = Color.Red;
};
songLab.MouseLeave = (o, e4) =>
{
Cursor = Cursors.Default;
songLab.ForeColor = Color.Black;
};
Controls.Add(songLab);
int fileExtPos = song.LastIndexOf(".");
var songFixd = song.Substring(0, fileExtPos);
prevY = 20;
songLab.Text = songFixd "\n";
}
```
uj5u.com熱心網友回復:
最簡單的方法可能是保留一個單獨的標簽串列:
myLabels.Add(songLab);
Controls.Add(songLab);
然后你可以遍歷它并洗掉標簽:
foreach(var label in myLabels){
Controls.Remove(label);
}
但是,聽起來您正在做類似listview或datagrid 的事情。使用這些可能比手動添加標簽更好。您還可以考慮使用完全自定義的控制元件,您可以自己管理所有繪圖和事件處理,而不是依賴現有控制元件。
uj5u.com熱心網友回復:
我認為您應該使用groupbox(或類似的控制元件)。groupbox像這樣添加標簽:
groupBox1.Controls.Add(songLab);
groupbox像這樣批量洗掉時洗掉:
groupBox1.Controls.Clear();
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/315638.html
