我是C#的新手,我想要一个包含文件夹中所有文本文件的列表框,如果用户在列出的文件上点击该文件,该文件将显示在文本框中。
我不想使用openFileDialog函数,因为文本文件位于我使用username:password@server.com/folder访问的网络服务器上。
有点像texteditor仅限于编辑1个文件夹中的文件:) 如果可以使用openFileDialog,请告诉我如何。
我希望你能理解我想做的事。
问候,
答案 0 :(得分:2)
根据我的理解,您希望遍历特定目录中的文件,然后在列表框中双击打开后允许对其进行编辑。
可以使用var Files = Directory.GetFiles("path", ".txt");
Files
将是文件名的string[]
。
然后使用以下文件填充列表框:
ListBox lbx = new ListBox();
lbx.Size = new System.Drawing.Size(X,Y); //Set to desired Size.
lbx.Location = new System.Drawing.Point(X,Y); //Set to desired Location.
this.Controls.Add(listBox1); //Add to the window control list.
lbx.DoubleClick += OpenFileandBeginEditingDelegate;
lbx.BeginUpdate();
for(int i = 0; i < numfiles; i++)
lbx.Items.Add(Files[i]);
lbx.EndUpdate();
现在你的事件代表应该是这样的:
OpenFileandBeginEditingDelegate(object sender, EventArgs e)
{
string file = lbx.SelectedItem.ToString();
FileStream fs = new FileStream(Path + file, FileMode.Open);
//Now add this to the textbox
byte[] b = new byte[1024];
UTF8Encoding temp = new UTF8Encoding(true);
while (fs.Read(b,0,b.Length) > 0)
{
tbx.Text += temp.GetString(b);//tbx being the textbox you want to use as the editor.
}
}
现在通过VS窗口编辑器添加事件处理程序,单击相关控件并转到该控件的属性窗格。然后,您需要切换到事件窗格并滚动,直到找到DoubleClick
事件,如果您使用设计器应该自动插入有效的委托签名并允许您为事件编写逻辑。