【发布时间】:2019-11-01 04:09:51
【问题描述】:
我在 Visual Basic 2010 Express 中制作了一个简单的项目,我在其中上传了一张照片,它需要 OpenFileDialog 的 ShowDialog。如果我将该特定表单设置为启动表单,它可以正常工作。但如果我从其他地方开始,我会收到错误“vshost32.exe 已停止工作”。我还尝试在其他地方触发该功能,但似乎如果两个表单处于活动状态,则会显示错误。我也用相同的功能测试了其他项目,它们都可以工作。
这是我尝试过的事情的清单:
取消选中“启用 Visual Studio 托管进程”
选中“启用 ClickOnce 安全设置”
以管理员身份运行 VB 2010
创建一个新项目并复制所有内容
重启我的笔记本电脑
这是我刚刚在此处复制的函数:
Function UploadPhoto()
Try
Using openFileDialog1 As New OpenFileDialog()
openFileDialog1.InitialDirectory = "D:\Pictures"
openFileDialog1.RestoreDirectory = True
openFileDialog1.Filter = "JPEGs|*.jpg|GIFs|*.gif|Bitmaps|*.bmp|PNGs|*.png|AllFiles|*.*"
If openFileDialog1.ShowDialog = Windows.Forms.DialogResult.Cancel Then Exit Function
If openFileDialog1.FileName.Length = 0 Then
Else
imgpath = System.IO.Path.GetFullPath(openFileDialog1.FileName)
Try
Dim bmp As New Bitmap(openFileDialog1.FileName)
If Not IsNothing(picItem.Image) Then picItem.Image.Dispose()
picItem.Image = bmp
Catch
MsgBox("Not a valid image file.")
End Try
End If
End Using
Catch ex As Exception
MessageBox.Show(ex.ToString & vbCrLf & ex.Message.ToString & vbCrLf & ex.StackTrace.ToString)
End Try
End Function
稍后,我会尝试卸载并重新安装 VB 2010
【问题讨论】:
-
尝试在.NET 4.0 或更高版本开发PC/机器时更新您的框架
-
ShowDialog() 无法诊断的崩溃并不少见。如果您启用非托管调试,您只能看到 something。这距离解决行为不端的 shell 扩展可能导致的问题还有很长的路要走。重新安装框架或 VS 不会做任何有用的事情。使用 SysInternals 的 Autoruns 实用程序将它们一一禁用,从 Microsoft 未提供的开始。
-
@G3nt_M3caj 我已经安装了 .NET 4.0
-
尝试禁用 vshost(正如我在下面的答案中描述的那样)并重新尝试直接调试您的应用程序,标签是(“激活视觉工作室托管过程”)或类似的英文: )
-
另一件事可能是:如果您的应用程序“CPU 目标”是“任何 CPU”,请勾选“首选 32 位”或更改 32 位的构建目标。
标签: vb.net vb.net-2010