C# 在子窗口显示已经隐藏的主窗口,简单实用

今天写一个客户端程序的时候,想实现连接服务器时,主窗口隐藏,子窗口弹出。想要主窗口出现时,再点击子窗口的按钮即可返回。

本来以为这样就就可以实现↓

ClientForm clientform=new ClientForm();//实例化
clientform.Visible=true;//隐藏为false

发现我太天真了。这样只会开多一个新的窗口出来,根本不是我们本来的窗口

于是我上网搜索,发现找不到自己想要的。看了另外一个博主写了个定时器的办法,可行,但是感觉还可以更简单一点。

于是开始自己动手写。

首先,在子窗口定义一个静态窗口变量,用于存储等等传过来的主窗口变量。

static Form ClientFormSet;//定义一个静态窗口变量去存储主窗口,方便调用

其次,再主窗口打开子窗口时,传入主窗口。

MiniClientForm miniform = new MiniClientForm(this);//实例化子窗口,传入本窗口。
MiniformSet.Show();//创建小窗口

在子窗口的代码也要加上形参

public MiniClientForm(ClientForm clientForm)//窗口函数,此时传入了大窗口
        {
            InitializeComponent();
            ClientFormSet = clientForm;//用刚刚定义的静态变量存储大窗口
            
        }

这样就大功告成了,你已经可以随便显示/隐藏自己的主窗口了。

if (IsBigFormOpen == false)//这里是我自己定的bool值。如果窗口未打开,则打开
            {
                ClientFormSet.Visible = true;
                IsBigFormOpen = true;//已打开
                ReturnSettingBtn.Text = "隐藏设置";
            }
            else
            {
                ClientFormSet.Visible = false;
                ReturnSettingBtn.Text = "返回设置";
                IsBigFormOpen = false;//已关闭
            }

非常简单!

猜你喜欢

转载自blog.csdn.net/aa989111337/article/details/126013537
今日推荐