将列表框中列出的文件加载到富文本框中

时间:2018-12-11 05:42:36

标签: c# winforms file-io

因此,我正在创建一个程序,该程序在目录中显示文件,并且尝试获取它,因此,如果单击其中的一个项目,它将文件内容(以文本形式)加载到富文本框中。

numberedRTB1.RichTextBox.LoadFile(listBox1.SelectedItem.Name, RichTextBoxStreamType.RichText);

2 个答案:

答案 0 :(得分:0)

如果您拥有文件的路径,则可以使用File类中的n方法,简单地将文件文本加载到RichTextBox中
小例子

ReadAllText(string path)

答案 1 :(得分:0)

1)您没有真正提出问题。

2)您最有可能希望在列表中看到没有路径的名称,但是需要完整路径才能加载它们。

对于其他列表,例如ListView,您可以使用该项目的Tag,但是ListBox包含stringobject,但都没有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);
    }
}