首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往
您找到你想要的搜索结果了吗?
是的
没有找到

保证相同类型的MDI窗体只会被打开一次的方法

本文转载:http://www.cnblogs.com/Ricky81317/archive/2008/09/17/1292443.html 看到论坛中有朋友问,如何可以保证在MDI窗体中,同一类型的窗体只能打开一次...我实现的基本思路是: 一般每个子窗体都是继承自Form类型,不同窗体分别代表不同的功能,因此只需要判断当前MDI打开的窗体的类型中有没有当前需要打开的窗体类型就行了,如果有,则直接激活,如果没有则创建一个并加到主窗体中...具体实现起来有很多种办法,这里只写出一个利用泛型的实现: /// /// 打开MDI窗口并附加到MDI主窗口中,如果MDI主窗口中已经存在相同类型的窗口,则直接激活 /// /// MDI窗体类型 /// MDI窗体引用 //.../ 当前创建或得到的MDI窗体类型实例的引用 private T OpenUniqueMDIChildWindow(Form mdiParent) where

98110

实现iframe父窗体窗体的通信

本文主要会介绍如何基于MessengerJS,实现iframe父窗体窗体间的通信,传递数据信息。同时本文会提供一个可运行的实例代码,实现在父窗体中,获取到来自窗体的数据的效果。...1.2 使用方法 (1) 在需要通信的父窗体、和窗体的文档中,都需要引入MessengerJS。...(2) 父窗体窗体各自的文档(document)中,都需要自己的Messenger与其他文档通信,父窗体窗体的window对象都对应着有且仅有一个Messenger对象,该Messenger对象会负责当前...当接收到iframe窗体发来的消息后执行。...同时提供了一个完整的实例,可以实现窗体向父窗体传递消息,父窗体通过监听消息事件,来获取窗体消息的目的。如有问题,欢迎指正。

9.7K771

VB 窗体被PictureBox控件挡住无法显示

1、问题描述     VB做机房收费系统的时候,用的MDI窗体,在主窗体上加了一个Picturebox控件,运行的时候,点了窗体,但是却没有出现,后来才发现,窗体被Picturebox控件给当在了后面...2、问题原因    在MDI程序中,窗体实际位于MDIClient里,就是说,窗体的父窗体是MDIClient,而PictureBox和MDIClient属于同一级的    层次结构    ThunderMDIForm-MDIForm1...   --MDIClient    ---ThunderFormDC-Form1  窗体1    ---ThunderFormDC-Form2  窗体2    --ThunderPictureBoxDC...   MDI的PictureBox 3、解决办法   用到的函数——SetParent函数 Private Declare FunctionSetParent Lib "user32" (ByVal...MDI窗体,要用一般的Form窗体,否则的话,当你运行的时候,它会提醒你——“实时错误426”,只允许一个MDI窗体

1.3K20

C# 窗体中调用父窗体中的方法(或多窗体之间方法调用)

本文转载:http://www.csframework.com/archive/2/arc-2-20110805-1771.htm 文章侧重点主要是讨论“窗体”与“窗体”之间方法的调用,以及“MDI窗体...”与“Chilid窗体”之间如何相互的调用方法。...C# 窗体中调用父窗体中的方法(或多窗体之间方法调用) 看似一个简单的功能需求,其实很多初学者处理不好的,很多朋友会这么写: C# Code: //父窗体是是frmParent,窗体是frmChildA...//在父窗体中打开窗体 frmChildA child = new frmChildA(); child.MdiParent = this; child.Show(); //窗体调父窗体方法...假设我们的项目不断在扩展,需要将父窗体窗体分开在不同的模块,这段代码就完了!因为父窗体模块必须引用窗体模块,而窗体需要用到frmParent的类,又要引用父窗体的模块!

8.1K20

CC++ Qt MdiArea 多窗体组件应用

MDI窗体组件,主要用于设计多文档界面应用程序,该组件具备有多种窗体展示风格,其实现了在父窗体中内嵌多种子窗体的功能,使用MDI组件需要在UI界面中增加mdiArea控件容器,我们所有的窗体创建与操作都在这个容器内进行...MDI窗体控件类似于画布,该控件只具备展示窗体的功能,无法实现生成窗体,所以我们需要在项目中手动增加自定义的Dialog对话框,并对该对话框进行一定的定制。...::on_actionClose_triggered() { ui->mdiArea->closeAllSubWindows(); //关闭所有窗口 } 代码运行效果如下: 当用户点击MDI...on_mdiArea_subWindowActivated 实现设置主窗体名字到自身 on_actionSendMsg_triggered 实现主窗体发送消息到窗体内 // 当窗体打开时获取到其窗体标题...// https://www.cnblogs.com/lyshark void MainWindow::on_actionSendMsg_triggered() { // 先获取当前MDI窗口

98120

CC++ Qt MdiArea 多窗体组件应用

MDI窗体组件,主要用于设计多文档界面应用程序,该组件具备有多种窗体展示风格,其实现了在父窗体中内嵌多种子窗体的功能,使用MDI组件需要在UI界面中增加mdiArea控件容器,我们所有的窗体创建与操作都在这个容器内进行...MDI窗体控件类似于画布,该控件只具备展示窗体的功能,无法实现生成窗体,所以我们需要在项目中手动增加自定义的Dialog对话框,并对该对话框进行一定的定制。...(){ ui->mdiArea->closeAllSubWindows(); //关闭所有窗口}代码运行效果如下:图片当用户点击MDI模式时,我们则执行以下代码,将所有已存在的窗体合并为一个类似于...on_mdiArea_subWindowActivated 实现设置主窗体名字到自身on_actionSendMsg_triggered 实现主窗体发送消息到窗体内// 当窗体打开时获取到其窗体标题...// https://www.cnblogs.com/lysharkvoid MainWindow::on_actionSendMsg_triggered(){ // 先获取当前MDI窗口

1K40

构建布局良好的Windows程序

MenuItem:菜单项 TextBox:文本框 ComboBoX:组合框 Separato:分割线 前面都有ToolStrip做前缀 Applaction.Exit() 退出整个应用程序,关闭所有窗体...this.Close()  关闭当前窗体 都会触发FormClosed事件和FormClosing事件 带图片的工具栏 属性名称     说明 displaystyle   是否显示图像和文本 image...按住Ctrl键选择多个控件,再设置anchor属性,可以一次选中多个控件 使用dock(停靠控件) dock属性 将控件停靠在窗体的边缘或填充窗体 当某个控件需要充满整个窗体时,设置控件的dock属性是最快捷的方式...SdI:比如记事本 Word等 mdi:多窗口应用程序 比如Excel 浏览器等 至少由连个窗口组成 包括顶级框架窗口(也叫mdi容器)其他文档窗口(也叫窗口) 创建mdi的步骤 1父窗体的ISMDIIContainer...属性设为true 窗体的Mdiparent属性设为父窗体 注意: 设置了MDI窗体不能用SHowDialog() 建立窗体窗口列表的步骤 设置父窗体菜单控件的mdiwindowlistItem属性选定为窗口菜单项

1.5K60

C# WPF MVVM模式下在主窗体显示窗体并获取结果

01 — 前言 在winform中打开一个新的窗体很简单,直接实例化窗体并show一下就可以: Form2 f2 = new Form2(); f2.Show(); 或者 Form2...所以正常是通过调用框架下得WindowManager接口,在window后台代码中通过WindowManager注册需要弹出的窗体类型,在ViewModel通过WindowManager的Show或ShowDialog...02 — ShowDialog用法实现 首先实例化新的窗体SubShowWindowViewModel ,然后通过CM框架的ioc容器获取IWindowManager接口,通过接口的ShowDialog...调出窗体,ControlTestStr 用来显示窗体的赋值并在界面显示。...ControlTestStr = subShowWindowViewModel.SubShowWindowStr; } } } 03 — 结果演示 ControlTestStr 获取到了新窗体的赋值并显示到了界面

1.7K10

C++ Qt开发:MdiArea多窗体组件

该组件主要用于设计多文档界面应用程序,具备有多种窗体展示风格,实现了在父窗体中内嵌多种子窗体的功能,使开发者能够轻松地创建支持多个文档的应用程序。...读者在使用MDI组件时,需要在UI界面中增加mdiArea控件容器,之后所有窗体创建与操作都要在容器内进行,其次由于MDI窗体组件仅仅是一个画布只具备限制窗口的作用,无法实现生成窗体,所以需要在项目中手动增加自定义...新建窗体时只需要调用new Dialog创建新的窗体,并通过addSubWindow()将新的窗体指针加入到组件内即可,当关闭时可以直接通过调用closeAllSubWindows()来实现,如下代码则是创建与关闭的实现...(); } 运行后可以点击打开窗体创建,这个创建是无限制的,如下图; 1.3 转换窗体模式 针对模式的转换此处提供了三种模式,分别是MDI模式、级联模式及平铺模式,三种模式的实现只需要调用不同的接口即可实现...,代码如下所示; // 转为MDI模式 void MainWindow::on_actionMID_triggered(bool checked) { // Tab多页显示模式 if (

39110

在Office应用中打开WPF窗体并且让窗体显示在Office应用上

我们可以简单的实例化一个WPF窗体对象然后在Office应用程序的窗体上打开这个新的WPF窗体,此时Office应用的窗体就是WPF的宿主窗体。...然后宿主窗体跟Office应用并不是在一个UI线程上,窗体很可能会在宿主窗体后面看不到。...这个时候需要调用Win32函数,将Office应用的窗体设置为WPF窗体的父窗体,这个函数的形式定义如下: [DllImport("user32.dll", SetLastError = true)]...下面方法是一个完整的方法,可以通过反射实例化一个WPF窗体对象,然后设置此WPF窗体对象为Office应用程序的窗体,并正常显示在Office应用程序上。...">窗体对象所在程序集 /// 窗体对象全名称 public static

1.6K50
领券