vb 怎样获取MDI子窗体在主窗体中的打开的先后序号

vb 怎样获取MDI子窗体在主窗体中的打开的先后序号,第1张

有一个办法:在模块声明一个全局变量 比如

public xuhao as integer

当MDI1窗体启动时

dim i as integer

xuhao=xuhao+1

i=xuhao

那么这个i 就是MDI1窗体启动的序号

相应的有其他MDI子窗体启动的时候也加入同样的代码

dim i as integer

xuhao=xuhao+1

i=xuhao

其中,i的值就是相应的MDI窗体的序号

呵呵o(∩_∩)o,简单吧这样就能知道相应窗体打开的先后序号了

可以把主窗口作为参数传给子窗口

代码如下:

主窗口:

public partial class frmMain : Form

{

public static frmMain f0 = null; //用来引用主窗口

public frmMain()

{

InitializeComponent();

f0 = this; //赋值

}

private void button1_Click(object sender, EventArgs e)

{

new frmCx()Show();

thisHide();

}

子窗口:

public partial class frmCx : Form

{

public frmCx()

{

InitializeComponent();

}

private void frmCx_FormClosing(object sender, FormClosingEventArgs e)

{

frmMainf0Show(); //显示主窗口

}

}

new出这个窗体的时候,获取主窗体的坐标,thisLocationX,thisLocationY;

当新窗体show之后,你说可以移动,没问题的,有一个locationChanged事件,这时把新窗体的坐标获取出来就可以了,再和之前主窗体的坐标可以比较了。

这样吧

比如说你的主窗体是Form1这个类,然后你有Form2,Form3这两个子窗体

你把主窗体的字符串string设置成public的

就是你上面的ID,然后你子窗体的button1事件就这样写

Form1 form = new Form1();

textbox1text = formID;

uimainWindow

。。。我错了

传参数进去和全局变量应该都行把。。。

这个可行但是只是显示ui界面数据我需要对mainwindow中所有变量进行访问

QApplication::focusWidget()

初始化mainWindow的时候初始化个全局变量就类似于qApp的全局指针指向QApplication吧

这样的话就得extern了吧

要么继承个qapp里面放个指针用qApp-getMainWindow()来返回。。其它想不到了等高手

还是没能获取只好把mainwindow里的数据设置成静态的了按理说mainwindow不能new的话qt应该提供一种返回主窗口的指针

你可以给主窗口发个信号,把任务交给主窗口做。QT没有类似GetParent的功能。

以上就是关于vb 怎样获取MDI子窗体在主窗体中的打开的先后序号全部的内容,包括:vb 怎样获取MDI子窗体在主窗体中的打开的先后序号、C#窗口切换问题:如何切换回主窗体、C# 请问如何获取当前窗体(可以拖动)的位置,从而去确定它所调用的窗体之间的相对位置。等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/web/9304074.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-04-27
下一篇 2023-04-27

发表评论

登录后才能评论

评论列表(0条)

保存