小编use*_*431的帖子

C#OpenFileDialog中的Stackoverflow/CLR错误

下面的代码是我悲伤的一个(三个)例子.这是一个简单的OpenFileDialog()调用,导致程序崩溃.在XP上,如果对话框保持打开几秒钟,则会发生崩溃.在Vista上,如果用户选择"我的电脑",则会发生崩溃.在VS2008中,调试器有时会捕获stackoverflowexception.如果我在第一行(新...)中设置了一个断点,vshost.exe会崩溃.如果我在ShowDialog()行放置一个断点,我会得到一个FatalExecutionEngineError.如果我在没有vshost的情况下编译,应用程序将运行直到随机崩溃(如在XP上 - 有一些时间).

还有另外两个打开的对话框可以打开不同类型的文件,这三个文件都具有相同的行为.类似的代码在我的其他项目中没有显示相同的行为.

线程公寓是单身.我试过设置ValidateNames = false.在大多数情况下,调试器正在脱离深层.

OpenFileDialog imageDlg = new OpenFileDialog();
imageDlg.Filter = "All Images|*.jpg;*.jpeg;*.png;*.tif;*.tiff;*.bmp|All Files|*.*|JPEGs (*.jpg)|*.jpg|PNGs (*.png)|*.png|TIFFs (*.tiff)|*.tiff|TIFFs (*.tif)|*.tif|BMPS (*.bmp)|*.bmp";
imageDlg.Title = "Select Scan Image";

if (DialogResult.OK == imageDlg.ShowDialog())
{
    updateImageDisplay();
}
Run Code Online (Sandbox Code Playgroud)

事件处理程序代码

// 
// setScratchImageButton
// 
this.setScratchImageButton.Location = new System.Drawing.Point(191, 15);
this.setScratchImageButton.Name = "setScratchImageButton";
this.setScratchImageButton.Size = new System.Drawing.Size(26, 23);
this.setScratchImageButton.TabIndex = 8;
this.setScratchImageButton.Text = "...";
this.setScratchImageButton.UseVisualStyleBackColor = true;
this.setScratchImageButton.Click += new System.EventHandler(this.setScratchImageButton_Click);
Run Code Online (Sandbox Code Playgroud)

代码叫

    private void updateImageDisplay()
    {
        if (null != project.srcImage)
        {
            imageDisplay.SizeMode = PictureBoxSizeMode.Normal;
            if (project.srcImage …
Run Code Online (Sandbox Code Playgroud)

c# openfiledialog

3
推荐指数
1
解决办法
1768
查看次数

标签 统计

c# ×1

openfiledialog ×1