繁体   English   中英

禁用后再次启用第二种形式

[英]Make the second form enable again after disabled

我只是面临一个新问题,我有一个表单,里面有一个按钮,当用户单击此按钮时,另一个表单将出现并打开。 我设置了一个事件,当用户双击第二个表单时,该表单将被禁用,而当表单被禁用时,用户将无法执行任何操作。 但是我想设置一种方法,使用户可以再次启用第二种形式。 我尝试了一些事件,当用户在第二个窗体上按Enter时,第二个窗体再次变为启用状态,这是我的代码:

f3.Enabled = true;

但是实际上,当我在禁用表单后按Enter时,什么也没有发生。 我尝试了另一种方式,例如当用户按下一个键时,第二种形式变为启用状态,这是我的代码:

f3.Enabled = true;

但是令我生气的是,当第二个表单打开时,我不能对第一个表单做任何事情,而我必须先关闭第二个表单。 但是,导致残疾的原因我无法关闭第二种形式。 您有什么建议? 我可以添加什么事件,或者应该在程序中放入什么代码,以这种方式轻松地启用和禁用第二种形式? 预先感谢您的建议。

更新请告诉我如何将一些控件放在一个网格中并禁用它们? 例如,我不希望该用户进行任何更改,只能通过单击“ x”按钮关闭表单。 更新 这是我的表格编号3

如您所见,我有2个按钮和3个标签,但我没有在标签中放入代码。 但是我想当用户单击开始时禁用窗体中的所有控件(特别是单击窗体:这意味着用户无法像禁用它一样单击窗体),但退出按钮除外。 在“ x”按钮上方以及最小化和最大化按钮上方启用。

更新我在表单2中执行了此代码:

public partial class Form2 : Form{
public Form2()
{
    InitializeComponent();
}

private void Form2_DoubleClick(object sender, EventArgs e)
{
    this.Enabled = false;
}

private void Form2_KeyDown(object sender, KeyEventArgs e)
{
    if (e.KeyCode == Keys.Enter)
    {
        this.Enabled = true;
    }
}

}

并且已经是您在此处编写的代码。 但是我有这个问题。 我放一张照片也许可以帮助您。 也许可以帮助您这张图片

更新资料

我在表单中尝试了KeyPreview,并将其更改为true,但是我仍然遇到问题。 有什么建议吗? 这意味着我的想法没有代码?!? 更新资料

我为此问题尝试了很多代码,但仍未找到答案...让我更好地描述我有2个表单的问题是什么,我想当用户单击第二个表单时,该表单变得不可点击,用户可以当用户单击该按钮时,除了最小化,最大化和退出表单之外,什么都不会做。 我找到了一些代码,但是它们没有帮助我...也许您可以:

这是我在按钮中的代码:

        private void btnStart_Click(object sender, EventArgs e)
    {
        f3.Visible = false;
    }

而且我也尝试了这段代码:

        private void btnStart_Click(object sender, EventArgs e)
    {
        this.Enabled = false;
    }

并为此窗体设置keypreview,但是当我单击按钮时,窗体变为“禁用”,除了从任务栏关闭程序之外,我什么也不能做。 有什么建议吗?

您可以对表单执行以下操作:

表格1:

public partial class Form1 : Form
{
    public Form1()
    {
        InitializeComponent();
    }

    private void button1_Click(object sender, EventArgs e)
    {
        Form2 frm = new Form2();
        frm.ShowDialog();
    }
}

表格2:

// on form, set form property KeyPreview to true
public partial class Form2 : Form
{
    public Form2()
    {
        InitializeComponent();
    }

    private void Form2_DoubleClick(object sender, EventArgs e)
    {
        this.Enabled = false;
    }

    private void Form2_KeyDown(object sender, KeyEventArgs e)
    {
        if (e.KeyCode == Keys.Enter)
        {
            this.Enabled = true;
        }
    }
}

如果要使用网格视图或其他功能,可以以相同的方式启用/禁用网格。

如果您还有其他问题,请告诉我。

希望对您有帮助。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM