簡體   English   中英

c#openFileDialog IndexOutofRange錯誤

[英]c# openFileDialog IndexOutofRange error

我有一個問題甚至無法顯示openFileDialog。

這是我目前的情況:

我有一個具有多種形式的WinForms程序,但是它們都在同一線程中運行。 當前,我有兩種形式,每種形式都有一個saveFileDialog和openFileDialog。

對於第一種形式(即在啟動時打開的形式),saveFileDialog和openFileDialog都可以正常工作,但是對於第二種形式,openFileDialog甚至拒絕打開。

這是我現在得到的堆棧跟蹤:

類型為“ System.IndexOutOfRangeException”的第一次機會異常發生在System.Windows.Forms.OpenFileDialog.OpenFile()的System.Windows.Forms.dll中

這是發生問題的代碼:

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 / Invokes,以及上面代碼所在的形式的一些p / Invokes。盡管它們處理位圖和屏幕。

  • 我希望這不是關於我遇到的問題的太多信息。 如果還不夠,請告訴我您還希望我提供什么。

  • 我知道這個問題似乎類似於這個問題( C#OpenFileDialog中的Stackoverflow / CLR錯誤 ),但是該問題還沒有被接受的答案。 但是與他的問題不同,盡管我確實有2個saveFileDialogs和1個其他openFileDialogs,但它們完全不會失敗。

您尚未提示用戶選擇文件...您需要顯示OpenFileDialog

...
bmpOpenFileDialog.ShowDialog();  // <-- you forgot this line
bmpOpenFileDialog.OpenFile();

另外, OpenFile()本身並不能做很多事情。 您對它創建的Stream不做任何事情。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM