C#-如何将文本从列表框中的文本文件加载到richTextBox中?

时间:2019-03-10 17:49:08

标签: c#

现在解决了。感谢您的回答!

这是我现在的代码:

  //Listbox scripts is the name of my folder
    private void Form1_Load(object sender, EventArgs e)
    {
        foreach (var file in Directory.GetFiles(AppDomain.CurrentDomain.BaseDirectory + @"Listbox scripts"))
        {
            string file2 = file.Split('\\').Last();
            listBox1.Items.Add(file2);
        }
    }

    private void listBox1_SelectedIndexChanged(object sender, EventArgs e)
    {
        webBrowser1.Document.InvokeScript("SetText", new object[]
        {
            File.ReadAllText(string.Format("./Listbox scripts/{0}", listBox1.SelectedItem.ToString()))
        });
    }

我是C#编码的新手,我有一个文本框,其中包含目录中文本文件的名称,当我单击列表框中的文本文件时,应该将文本从其中加载到我的文本框中(命名为'ScriptBox')

这是我的代码:

    private void Form1_Load(object sender, EventArgs e)
    {
            string User = System.Environment.MachineName;
        textBox1.Text = "{CONSOLE} Welcome to Linst, " + User + "!";
        directory = new DirectoryInfo(AppDomain.CurrentDomain.BaseDirectory + @"Scripts");
        files = directory.GetFiles("*.txt");
        foreach (FileInfo file in files)
        {
            listBox1.Items.Add(file.Name);
        }
    }

    private void listBox1_SelectedIndexChanged(object sender, EventArgs e)
    {
        var selectedFile = files[listBox1.SelectedIndex];

        ScriptBox.Text = File.ReadAllText(selectedFile.FullName); //these parts are the parts that dont work
    }

谢谢!

2 个答案:

答案 0 :(得分:1)

将以下内容添加到您的Form1.cs中。这是要执行的操作,当用户单击列表框项目时,它将调用(引发事件)“ listBox1_MouseClick”方法,并将文本框的文本设置为列表框项目的文本。我刚刚快速创建了一个应用并实现了以下功能,它就可以正常工作。

private void listBox1_MouseClick(object sender, MouseEventArgs e)
{
    textBox1.Text = listBox1.Text;
}

并将以下内容添加到Form1.Designer.cs中,其余列表框属性都在其中。下面订阅了一个事件,即Form1.cs中的listBox1_MouseClick方法,因此,当用户单击列表框项时,listBox1_MouseClick方法将运行。

 this.listBox1.MouseClick += new MouseEventHandler(this.listBox1_MouseClick);

我希望以上所述是合理的。

答案 1 :(得分:0)

您的代码不错,也很完美,但是只需要在列表索引选择中进行一点验证即可 尝试在您的listbox_selectedIndexChanged

中进行操作
 private void listBox1_SelectedIndexChanged(object sender, EventArgs e)
    {
        if (listBox1.SelectedIndex!=-1)
        {
            FileInfo selectedFile = files[listBox1.SelectedIndex];
            ScriptBox.Text = File.ReadAllText(selectedFile.FullName);
        }
    }