这是我尝试在程序中打开OpenFileDialog时收到的错误消息:
"在进行OLE调用之前,必须将当前线程设置为单线程单元(STA)模式.确保Main函数上标记了STAThreadAttribute.仅当调试器附加到进程时才会引发此异常."
此错误消息的问题是我的Main方法DOES附加了STAThread属性.我不知道如何处理这个问题.如果它已经存在,我怎么能添加一些东西.加倍它并不是一个好选择,我尝试删除它,构建应用程序,添加它并再次构建它没有成功.我只是不明白.
private void btnOldFind_Click(object sender, EventArgs e)
{
openFileDialog1.Multiselect = false;
openFileDialog1.FileName = "";
openFileDialog1.ShowHelp = false;
openFileDialog1.AutoUpgradeEnabled = true;
openFileDialog1.InitialDirectory = @"C:\";
openFileDialog1.Filter = "Microsoft Installer (*.msi)|*.msi|All Files (*.*)|*.* ";
openFileDialog1.FilterIndex = 1;
openFileDialog1.RestoreDirectory = true;
if (openFileDialog1.ShowDialog() == DialogResult.OK)
{
textBoxOldInstallation.Text = openFileDialog1.FileName;
}
}
Run Code Online (Sandbox Code Playgroud)
主要方法是:
static class Program
{
/// <summary>
/// The main entry point for the application.
/// </summary>
[STAThread]
static void Main()
{
Application.EnableVisualStyles();
Application.SetCompatibleTextRenderingDefault(false);
Application.Run(new Form1());
}
}
Run Code Online (Sandbox Code Playgroud)
并且没有明确地进行线程化.说实话,这是一个非常基本的计划.
EDIT2 :: …
c# ×1