禁用后再次启用第二个表单

时间:2016-03-04 18:53:01

标签: c#

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

f3.Enabled = true;

但事实上当我在禁用表格后按下输入时,根本没有任何事情发生。 我尝试了另一种方式,例如当用户按下一个键时,第二个表单变为启用,这是我的代码:

f3.Enabled = true;

但有些事情让我很生气,当第二种形式开放时,我无法对第一种形式做任何事情,我必须先关闭第二种形式。 但是残疾的原因我无法关闭第二种形式。 你的建议是什么? 我可以添加什么事件或者我应该在我的程序中添加什么代码以便这样轻松地启用和禁用第二个表单? 提前感谢您的建议。

更新 你能否告诉我如何在一个网格中放置一些控件并禁用它们? 例如,我不希望该用户进行任何更改,除非通过单击“x”按钮关闭表单。 的更新 This is my Form number 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;
    }
}

}

已经有你在那里写的代码了。 但我还有那个问题。 我放了一张可能会帮助你的照片。 maybe can help ya this image

更新

我在我的表单中尝试了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 个答案:

答案 0 :(得分:1)

你可以为表格做这样的事情:

Form1中:

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

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

Form2:

// 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;
        }
    }
}

如果你想使用网格视图或其他东西,你可以用同样的方式启用/禁用网格。

如果您还有其他问题,请与我们联系。

我希望它能帮到你..!