在编程方面我仍然是初学者,这是我按照 C# 教程开发的一个小应用程序。
private void viewImagesToolStripMenuItem_Click(object sender, EventArgs e)
{
string openedfile = "";
openfd.Title = "Insert a text file";
openfd.InitialDirectory = "C:";
openfd.FileName = "";
openfd.Filter = "text files|*.txt|word documents|*.doc|allfiles|*.*";
if (openfd.ShowDialog() == DialogResult.Cancel)
{
MessageBox.Show("Operation canceled");
}
if (openfd.ShowDialog() != DialogResult.Cancel)
{
openedfile = openfd.FileName;
richTextBox1.LoadFile(openedfile,RichTextBoxStreamType.PlainText);
}
在执行此操作时,我注意到如果我仅更改同一个应用程序的代码顺序 2 行 -
string openedfile = "";
openedfile = openfd.FileName;
像下面这样它会在调试时抛出这样的错误——空路径名是不合法的。
private void openToolStripMenuItem_Click(object sender, EventArgs e)
{
openfd.Title = "Insert a text file";
openfd.InitialDirectory = "C:";
openfd.FileName = "";
openfd.Filter = "text files|*.txt|word documents|*.doc|allfiles|*.*";
**string openedfile = "";
openedfile = openfd.FileName;**
if (openfd.ShowDialog() == DialogResult.Cancel)
{
MessageBox.Show("Operation canceled");
}
if (openfd.ShowDialog() != DialogResult.Cancel)
{
richTextBox1.LoadFile(openedfile,RichTextBoxStreamType.PlainText);
}
没有办法理解这些类型情况下的错误。编写这样的应用程序的具体顺序是什么?
最佳答案
好吧,这个想法很简单,你不能使用一个没有被初始化的变量。 在你的情况下,同样的事情正在发生。 在你的第一个代码中 openedfile = openfd.FileName;对话显示后正在执行。因此文件名正确。 但是在第二个 openedfile = openfd.FileName;在显示对话之前正在初始化。由于没有对话,名称为空,因此会出错。
注意。我没有以技术方式使用初始化词。
关于c# - 在 C# 应用程序中打开文本文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16476882/