有一个办法:在模块声明一个全局变量 比如
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# 请问如何获取当前窗体(可以拖动)的位置,从而去确定它所调用的窗体之间的相对位置。等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)