Previous topicNext topic
Help > 开发指南 > 窗体开发 > 窗口基础 >
窗体打开类型

本平台中窗体打开主要有三种。窗体中有一个属性ShowType,是FormShowType枚举类型

public enum FormShowType
{
    //常规
    Standard = 0,
    //模式窗体
    Model = 1,
    //在桌面标签打开
    InDesktopTab = 2
}

Standard:就是常规正常模式打开窗体,此时打开窗体并不会形成线程阻塞,打开窗体后面的代码会继续执行。用代码Form.Show()打开的窗体就是这种模式。

Model:就是模式窗口打开,此时窗体打开是阻塞线程的,打开窗体后面的代码在窗体关闭之前是无法继续执行的。我们也无法点击此窗体之外的其他窗体。用代码Form.ShowDialog()打开的窗体就是这种模式。此模式打开的窗体还可以获得DialogResult枚举类型的值。这个值可以是按钮默认返回值,也可以是用代码直接赋值给窗体的DialogResult属性的。

InDesktopTab:就是桌面的标签中打开窗体,这种打开方式会把窗体当成一个控件以并列的方式显示到桌面标签中,可以方便我们同时打开多个应用窗体,并在各窗体之间方便地来回切换。

我们可以通过多个场景设置窗体的打开类型

1、自定义窗体设计时,在窗体属性中设置。因为下拉窗体不能设置,这种打开类型对下拉窗体也没有意义,衍生窗体无法设计也不能设置窗体打开类型,只有自定义窗体可以设置。

2、在自定义菜单引用窗体时。

3、在表属性中设置打开的子窗体打开类型。

4、系统命令中打开部分系统窗体功能时。

系统命令中关于打开窗体的功能,基本都有一个可选参数是可以指定窗体打开类型的,这给我们打开系统窗体提供了很大的灵活性。比如打开角色管理,我们可以通过下面的代码实现在桌面标签中打开窗体。

CmdSystem.OpenRoleManager(FormShowType.InDesktopTab)

5、用代码打开窗体时。

 Vb.Net
Dim frm As SmForm=Proj.Forms("窗体名称")
'设置窗体的属性
frm.ShowType=FormShowType.InDesktopTab
'以窗体的ShowType设置的方式打开窗体
frm.ShowByShowType()

 C#
SmForm frm = Proj.Forms["窗体名称"];
// 设置窗体的属性
frm.ShowType = FormShowType.InDesktopTab;
// 以窗体的ShowType设置的方式打开窗体
frm.ShowByShowType();