所以,我已经在我的应用程序上编写了导入/导出功能,并且我已经设置了与我的应用程序相关联的文件扩展名。导出提醒时,会创建.remindme文件。这可以打开,并在我的program.cs中捕获,如此
[STAThread]
[HandleProcessCorruptedStateExceptions]
static void Main(string[] args)
{
using (Mutex mutex = new Mutex(false, "Global\\" + "RemindMe"))
{
if (!mutex.WaitOne(0, false))
{
if (args.Length > 0)
{//The user double-clicked an .remindme file while remindme is running!
Application.EnableVisualStyles();
Application.SetCompatibleTextRenderingDefault(false);
Application.Run(new Import(args[0]));
}
//one instance of remindme already running
return;
}
Application.EnableVisualStyles();
Application.SetCompatibleTextRenderingDefault(false);
Application.ThreadException += new System.Threading.ThreadExceptionEventHandler(Application_ThreadException);
Application.Run(new Form1());
}
}
我尝试在这里制作一个新的导入实例(一个Windows窗体),然后执行Import.Show()
,但这不起作用。我在这个地方搜索过,我发现的唯一一件事就是在表格上使用Application.Run()
。这确实启动了它,但它创建了我的应用程序的另一个实例。这会带来问题,包括无法使用数据库。
当我在应用程序运行时双击.remindme文件时,使用第二个Application.Run()
表单成功启动。
但是,当我按yes(尝试将数据插入数据库)时,它会抛出EntityException
经过一番挖掘,我发现我不能使用同一个SQLite数据库的两个实例。这个新表单计为新实例,因为我使用了Application.Run
因此,总而言之我正在寻找的是一种从program.cs启动新表单的方法(因为我抓住了双击a .remindme文件)