【发布时间】:2009-08-15 02:12:20
【问题描述】:
我正在面板上绘制文件和文件夹名称列表,我正在尝试集思广益来检测用户是否以及何时单击文件/文件夹名称,以及他们实际上是什么文件或文件夹名称点击。
以下是我目前编写的方法。我的第一个想法是使用透明控件来搭载每段文本,并以这种方式动态连接 onclick 事件。但这似乎是一种资源浪费。
private void DisplayFolderContents(ListBox lb, string sPath)
{
lblPath.Text = sPath;
const float iPointX = 01.0f;
float iPointY = 20.0f;
DirectoryContents = FileSystem.RetrieveDirectoriesAndFiles(sPath, true, true, "*.mp3");
foreach (string str in DirectoryContents)
{
DrawString(FileSystem.ReturnFolderFromPath(str), iPointX, iPointY, 21, panListing);
iPointY += 50;
}
}
private void DrawString(string textToDraw, float xCoordinate, float yCoordinate, int fontSize, Control controlToDrawOn)
{
Graphics formGraphics = controlToDrawOn.CreateGraphics();
formGraphics.TextRenderingHint = System.Drawing.Text.TextRenderingHint.AntiAlias;
Font drawFont = new Font(
"Arial", fontSize, FontStyle.Bold);
SolidBrush drawBrush = new
SolidBrush(Color.White);
formGraphics.DrawString(textToDraw, drawFont, drawBrush, xCoordinate, yCoordinate);
drawFont.Dispose();
drawBrush.Dispose();
formGraphics.Dispose();
}
谢谢, 凯文
【问题讨论】: