每次获得焦点或创建WinForm时,都要准确地加载它

本文关键字:加载 焦点 WinForm 创建 | 更新日期: 2023-09-27 18:26:33

我只是想让一个表单正确加载。它是模态父级的无模式子窗体(它本身是主UI的无模式个子窗体)。我需要能够在某种程度上同时与所有形式进行交互。

我想重新加载的表单几乎没有通过固定控件访问的权限。大多数动态控件是从读取文本文件(用户)和在表单上放置复选框(文本文件中每个用户1个)加载的。

我需要做的第一件事就是每次都准确地写出表格。我用一个按钮打开窗体,但保留对父窗体的所有权。如果父级关闭,则所有子级都应关闭(但不是程序。此子级的父级是子级)。例如:

    private void bPermissions_Click(object sender, EventArgs e)
    {
        Permissions af3 = new Permissions();
        af3.Owner = this;
        af3.Show();
    }

因此,我单击"权限"按钮,表单就会准确打开。如果我再次选择它,则打开表单时不带复选框。如果我关闭"权限",然后尝试重新打开它,它将无法准确加载。只有固定项目加载。我已经尝试过在"开始"窗体和"权限"窗体上的各种事件(FormClosed、FormClosing、Load等)中刷新父窗体和子窗体。

如何在每次尝试打开此表单时准确地刷新它?

编辑:

我是个新手,非常喜欢做这件事。但我正在学习。请友善一点,给我指个方向-D谢谢。

第2版:非模态。无模型。

每次获得焦点或创建WinForm时,都要准确地加载它

好的@D.无疑引导我走上了这条路。作为一个新手,我保证我必须做一些挠头的事情。

我是从onLoad 打电话的

    private void Permissions_Load(object sender, EventArgs e)
    {
        WidgetLogic.getPermText(this);
        WidgetLogic.getDetailerPermText(this);
        WidgetLogic.getAdminPermText(this);
    }

我应该在页面加载之前从按钮进行调用,并将其从逻辑传递回targetForm。我想要信息的表格(权限af3)

    private void bPermissions_Click(object sender, EventArgs e)
    {
        Permissions af3 = new Permissions();
        af3.Owner = this;
        af3.Show();
        WidgetLogic.getPermText(af3);
        WidgetLogic.getDetailerPermText(af3);
        WidgetLogic.getAdminPermText(af3);
    }

美味的酱汁!!:-D谢谢!!