c#线程中弹出窗口,子窗口无法显示在父窗口中央。
子窗口的StartPosintion属性已经设置为ParentCenter了,但是当主窗口处于非激活状态时,弹出的子窗口总是跑到屏幕中央而不是父窗口中央。代码如下:pri...
子窗口的StartPosintion属性已经设置为ParentCenter了,但是当主窗口处于非激活状态时,弹出的子窗口总是跑到屏幕中央而不是父窗口中央。
代码如下:
private void button2_Click(object sender, EventArgs e)
{
ShowDlg();
}
private void ShowDlg()
{
thread = new Thread(new ThreadStart(StartProcess));
thread.Start();
}
private void StartProcess()
{
Thread.Sleep(3000);
Invoke(new DStartProcess1(StartProcess1));
}
delegate void DStartProcess1();
private void StartProcess1()
{
Form2 form2 = new Form2();
if (form2.ShowDialog() != DialogResult.OK)
{
ShowDlg();
}
} 展开
代码如下:
private void button2_Click(object sender, EventArgs e)
{
ShowDlg();
}
private void ShowDlg()
{
thread = new Thread(new ThreadStart(StartProcess));
thread.Start();
}
private void StartProcess()
{
Thread.Sleep(3000);
Invoke(new DStartProcess1(StartProcess1));
}
delegate void DStartProcess1();
private void StartProcess1()
{
Form2 form2 = new Form2();
if (form2.ShowDialog() != DialogResult.OK)
{
ShowDlg();
}
} 展开
4个回答
展开全部
表示不解。子窗口弹出前,难道父窗口不是出于激活状态吗?
子窗口的StartPosintion属性应该设置 CenterParent
子窗口的StartPosintion属性应该设置 CenterParent
追问
程序运行起来后,再激活其他程序。这个程序就不是激活状态了啊
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐于2016-11-09 · 知道合伙人互联网行家
关注
展开全部
C#在父窗口中调用子窗口的过程:
1、 创建子窗口对象
2、 显示子窗口对象
主窗体MainFrm通过菜单调用子窗口ChildFrm。在窗体中定义了子窗口对象,然后在菜单项点击事件中,加入了如下代码来创建和显示子窗口:
Private childFrm myChildFrm = null; //定义子窗口对象
private void OpenChildFrmToolStripMenuItem_Click(object sender, EventArgs e)
{
myChildFrm = new ChildFrm();//创建子窗口对象
myChildFrm.Show();//显示子窗口
myChildFrm.Focus();//使子窗口获得焦点
}
当点击菜单中的OpenChild项时,创建了子窗口并显示在最前面。此时如果关闭子窗口再点击菜单打开,不会有问题。但是如果子窗口没有关闭的情况下,再次点击菜单中的OpenChild项,则会再创建一个子窗口。
1、 创建子窗口对象
2、 显示子窗口对象
主窗体MainFrm通过菜单调用子窗口ChildFrm。在窗体中定义了子窗口对象,然后在菜单项点击事件中,加入了如下代码来创建和显示子窗口:
Private childFrm myChildFrm = null; //定义子窗口对象
private void OpenChildFrmToolStripMenuItem_Click(object sender, EventArgs e)
{
myChildFrm = new ChildFrm();//创建子窗口对象
myChildFrm.Show();//显示子窗口
myChildFrm.Focus();//使子窗口获得焦点
}
当点击菜单中的OpenChild项时,创建了子窗口并显示在最前面。此时如果关闭子窗口再点击菜单打开,不会有问题。但是如果子窗口没有关闭的情况下,再次点击菜单中的OpenChild项,则会再创建一个子窗口。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
你子窗口是从新线程弹出来的,它无法直接访问父窗口,所以无效
追问
如果程序处于激活状态,子窗口会在父窗口中央。非激活就不会显示在父窗口中央了,什么道理?
本回答被网友采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询