1) Вы не смогли задать вопрос.
2) Скорее всего, вы хотите видеть имена без пути в списке, но для их загрузки требуется полный путь .
Для других списков e, g, ListView
вы можете использовать элемент Tag
, но ListBox
содержит либо string
, либо object
, ни один из которых не обладает свойством Tag
.
Итак, создайте class
с двумя строковыми полями и методом ToString
.
Теперь вы видите хорошее имя и можете получить доступ к полному пути ..
Пример кода для класса:
class ListItem
{
public string Name { get; set; }
public string FullPath { get; set; }
public ListItem(string filename, string fullpath )
{ Name = filename; FullPath = fullpath; }
public ListItem(FileInfo fileinfo )
{ Name = fileinfo.Name; FullPath = fileinfo.FullName; }
override public string ToString() { return Name; }
}
Использование для загрузки ..:
FileInfo fi = new FileInfo("D:\\test.rtf");
// either..:
listBox1.Items.Add(new ListItem(fi.Name, fi.FullName));
// or :
listBox1.Items.Add((new ListItem(fi));
.. и для доступа:
private void listBox1_SelectedIndexChanged(object sender, EventArgs e)
{
ListItem item = listBox1.SelectedItem as ListItem;
if (item != null)
{
if (File.Exists(item.FullPath) ) rtb.LoadFile(item.FullPath);
}
}