我有一个Windows窗体应用程序的功能,我正在检索文件夹中的文件列表,我正在删除每个文件名中包含的“部件号”。然后我添加了部件号和文件名到列表框。
使用代码时,一切正常。
lstProcessedParts.Items.Add(lsPartNumber);
如果我更改代码以添加列表框项的值,则会收到错误。
lstProcessedParts.Items.Add(lsPartNumber, lsFilename);
这是我的功能。
public void LoadPartNumberList()
{
string lsFilename, lsPartNumber = "";
int liPartNumberStartPosition, liPartNumberEndPosition, liPartNumberLength = 0;
string[] files = Directory.GetFiles(txtFolderSelected.Text);
foreach (string pathandfile in files)
{
lsFilename = Path.GetFileName(pathandfile);
liPartNumberStartPosition = lsFilename.IndexOf("-") + 1;
liPartNumberEndPosition = lsFilename.IndexOf("-", liPartNumberStartPosition + 5);
liPartNumberLength = liPartNumberEndPosition - liPartNumberStartPosition;
lsPartNumber = lsFilename.Substring(liPartNumberStartPosition, liPartNumberLength);
lstProcessedParts.Items.Add(lsPartNumber, lsFilename);
}
}
任何人都可以帮我修改我的代码,这样有效吗?
答案 0 :(得分:2)
我无法明确回答,因为我无法看到你的系统,但......
如果您的Items中需要不同的显示成员和值成员,则应将自定义类型的实例添加到列表中,并确保相应地配置显示和值成员。
所以,如果你有课程:
class ProcessedPart
{
public string PartNumber {get; set;}
public string FileName {get;set;}
}
现在您可以将ProcessedPart
的实例添加到列表中:
lstProcessedParts.Items.Add(
new ProcessedPart {
PartNumber = lsPartNumber,
FileName = lsFilename
});
请务必配置列表
lstProcessedParts.DisplayMember = "PartNumber";
lstProcessedParts.ValueMember = "FileName";
......或者你需要它的方式