c#openFileDialog索引自动失效错误
我甚至在显示openFileDialog时遇到了一个问题 以下是我目前的情况: 我有一个包含多个表单的WinForms程序,但它们都在同一个线程中运行。 目前,我有两个表单,分别有saveFileDialog和openFileDialog 对于启动时打开的第一个表单,saveFileDialog和openFileDialog都可以正常工作,但是对于第二个表单,openFileDialog甚至拒绝打开 这是我现在得到的堆栈跟踪: System.Windows.Forms.dll中首次出现类型为“System.IndexOutOfRangeException”的异常 在System.Windows.Forms.OpenFileDialog.OpenFile()中 以下是出现问题的代码:c#openFileDialog索引自动失效错误,c#,winforms,forms,openfiledialog,indexoutofrangeexception,C#,Winforms,Forms,Openfiledialog,Indexoutofrangeexception,我甚至在显示openFileDialog时遇到了一个问题 以下是我目前的情况: 我有一个包含多个表单的WinForms程序,但它们都在同一个线程中运行。 目前,我有两个表单,分别有saveFileDialog和openFileDialog 对于启动时打开的第一个表单,saveFileDialog和openFileDialog都可以正常工作,但是对于第二个表单,openFileDialog甚至拒绝打开 这是我现在得到的堆栈跟踪: System.Windows.Forms.dll中首次出现类型为“S
private void loadScreenshotToolStripMenuItem_Click(object sender, EventArgs e)
{
try
{
bmpOpenFileDialog = new OpenFileDialog();
bmpOpenFileDialog.Filter = "Bitmap|*.bmp;*.dib|Exchangable Image Format|*.exif|Icon|*.ico|JPEG|*.jpg;*.jpeg;*" +
".jpe;*.jfif|GIF|*.gif|PNG|*.png|All files|*.*";
this.bmpSaveFileDialog.Title = "Load Screenshot";
bmpOpenFileDialog.OpenFile();
}
catch (Exception ex)
{
MessageBox.Show("\nReport this error to the creator:\n\n" + ex);
System.Diagnostics.Debug.WriteLine(ex.StackTrace);
}
}
如果用户单击“确定”,则会触发:
private void bmpOpenFileDialog_FileOk(object sender, CancelEventArgs e)
{
Image tempIMG = Image.FromFile(bmpOpenFileDialog.FileName);
oriBmp = new Bitmap(tempIMG);
prntscrPictureBox.Image = oriBmp;
saveScreenshotToolStripMenuItem.Enabled = true;
zoomInToolStripMenuItem.Enabled = true;
zoomOutToolStripMenuItem.Enabled = true;
originalZoomToolStripMenuItem.Enabled = true;
fullSizeToolStripMenuItem.Enabled = true;
customToolStripMenuItem.Enabled = true;
zToolStripStatusLabel.Text = "Zoom Level: " + zoomFactor.ToString("2F");
}
- 我最初使用的是工具箱中的openFileDialog,它的属性发生了变化,然后尝试了另一种方法,正如您现在看到的,在它给了我这个问题之后
- 它在某个时候给我的另一个错误是关于找不到文件,好像openfiledialog试图在显示之前打开一个不存在的文件
- 我还在其他表单中使用了相当多的p/invoke,也在上面代码所在的表单中使用了一些p/invoke。他们处理位图和屏幕
- 我希望这不是太多关于我的问题的信息。如果还不够,请告诉我您还希望我提供什么
- 我知道这个问题可能类似于这个问题(),但这个问题还没有公认的答案。但与他的问题不同的是,尽管我有2个saveFileDialogs和1个其他openFileDialogs,但它们根本不会失败
OpenFileDialog
...
bmpOpenFileDialog.ShowDialog(); // <-- you forgot this line
bmpOpenFileDialog.OpenFile();
。。。
bmpOpenFileDialog.ShowDialog();//天哪,我现在觉得自己很愚蠢,我怎么会错过这个。。。现在终于开始工作了,谢谢!(我甚至错过了在第一个openFileDialog中使用“.ShowDialog”而不是“.OpenFile”的机会……)没问题,有时我们只需要第二双眼睛。我完全同意。另外,我不需要OpenFile(),因为我有这样一个:Image tempIMG=Image.FromFile(bmpOpenFileDialog.FileName);