基本的に、プログラムのログインシステムを作成しました。ユーザーがログに記録すると、Form1が開きます。しかし、Form1 を STA スレッドにする必要があります。Form1 で次のエラーが発生します。
{"OLE 呼び出しを行う前に、現在のスレッドをシングル スレッド アパートメント (STA) モードに設定する必要があります。Main 関数に STAThreadAttribute がマークされていることを確認してください。この例外は、デバッガーがプロセスに接続されている場合にのみ発生します。"}このコード
SaveFileDialog FSave = new SaveFileDialog()
{
Filter = "Executable Files|*.exe",
InitialDirectory = Environment.GetFolderPath(Environment.SpecialFolder.Desktop)
};
if (FSave.ShowDialog() == DialogResult.OK)//im getting the error here
{
// CodeDom compiler code
}
これは私のProgram.csです
using System;
using System.Windows.Forms;
namespace hwid_login_system
{
static class Program
{
[STAThread]
static void Main()
{
Application.EnableVisualStyles();
Application.SetCompatibleTextRenderingDefault(false);
Application.Run(new Login());
}
}
}
これは、フォームログインでフォーム Form1 を開く方法です
private void complete()
{
if (loggedin && hwid)
{
MessageBox.Show("Logged in successfully!");
System.Threading.Thread t = new System.Threading.Thread(new System.Threading.ThreadStart(ThreadProc));
t.Start();
this.Close();
}
else
MessageBox.Show("Something else went wrong..", "Failed", MessageBoxButtons.OK, MessageBoxIcon.Error);
}
public static void ThreadProc()
{
Application.Run(new Form1());
}