【问题标题】:Form Navigation in Win CE 5 ApplicationWin CE 5 应用程序中的表单导航
【发布时间】:2016-12-22 11:44:54
【问题描述】:

我正在尝试为运行 .Net 3.5 Win CE 5 的旧手持设备开发应用程序,但是我似乎无法克服切换表单的基本障碍!!

我开始使用

Application.Run(new frm_class());

但这在打开超过 2 个表单后开始崩溃。

然后我尝试了。

this.hide();
frm_class frm = new frm_class();
frm.show();

然后最终成为加载表单的恒定循环 然后我看到有人写了一个非常简单的类来处理这个。

    public static void switchForm(Form newForm, Form oldform)
    {
        newForm.Show();
        oldform.Hide();
        oldform.Dispose();
    } 

调用方式

    frm_class frm = new frm_class();
    switchform(frm,this);

在加载第二个表单时关闭应用程序。

这看起来很愚蠢,但我找不到一种只浏览简单表单的方法,即关闭此表单然后打开此表单,反之亦然!!

谁能帮忙?

【问题讨论】:

    标签: c# winforms .net-3.5 windows-ce


    【解决方案1】:

    Application.Run(new frm_class()); 将启动一个消息循环并使指定的表单可见并等待它关闭。一旦指定的表单关闭,消息循环就会终止。 oldform.Dispose(); 将处理(并关闭)表单,而不是隐藏它。

    您的第二个解决方案似乎是您应该采用的解决方案,它不应该循环。如果您再次创建相同的表单,请确保代码不在构造函数或 form_load 事件中。您可以发布围绕此的代码吗?

    您还可以从Application.Run() 中删除new frm_class() 参数。这将创建一个持续运行的消息循环。只是不要忘记在某个时候致电Application.Exit()

    您应该确保表单在无参数 Application.Run() 之前可见,因为此代码块内的执行不会继续,直到从您的表单内部调用 Application.Exit()

    frm_class frm = new frm_class();
    frm.Show();
    Application.Run();
    
    // Some button or event inside the form should be executing the exit call:
    Application.Exit();
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2010-10-20
      • 2020-07-18
      • 2011-02-05
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多