现在解决了。感谢您的回答!
这是我现在的代码:
//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
}
谢谢!
答案 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);
}
}