我有一个Windows表单,我想打开一个状态表单,上面写着"正在保存...",然后在保存完成时消失.我想将这个小状态表单放在调用表单的中间.我已经尝试将"StartPosition"设置为"CenterParent",但它确实有效.我从另一个表单创建状态表单,如下所示:
SavingForm saving = new SavingForm();
savingForm.Show();
Thread.Sleep(500); //Someone said this is bad practice ... why?
savingForm.Close();
Run Code Online (Sandbox Code Playgroud)
呼叫形式不是"父母"吗?当我设置一个保存手表时说它没有父母.
我试过了:
SavingForm saving = new SavingForm();
saving.Parent = this;
savingForm.Show();
Thread.Sleep(500);
savingForm.Close();
Run Code Online (Sandbox Code Playgroud)
它会引发异常"顶级控件无法添加到控件中".
如何将此状态窗口置于调用窗口中心?
提前致谢
我有一个客户,它在单实例模式下作为Visual Basic项目,具有有线表示逻辑.
主窗体包含一个带有多个TabPages的TabControl.如果我单击TabPageA,表单前面会显示另一个表单,并调整大小以使其与TabPage具有相同的大小.
如果我单击TabPageB,则隐藏第一个表单并显示另一个表单.所以基本上对于用户来说,看起来你有一个带有不同TabPages的TabControl,但事实并非如此.
我尝试将Forms转换为UserControl并将它们放在TabPage中,但是,由于SingleInstance应用程序,这将需要大量的重构.我尝试了但最终因为许多运行时错误而放弃了,我不想在这方面付出更多努力.
我的想法是,在运行时,我可以将表单添加到TabPages并让它们像UserControls一样,这甚至可能吗?
我有一个应用程序,我在表单上添加了一个usercontrol.当我签this.parentForm入userControl构造函数时,它给出了一个空引用
我的userControl代码就像
public UserControl1()
{
InitializeComponent();
if (this.ParentForm != null)//ParentReference is null
{
MessageBox.Show("Hi");//Does Not get Called
}
}
Run Code Online (Sandbox Code Playgroud)