如何在C#中使表单可见或不可见

时间:2014-02-09 04:53:33

标签: c#

所以我有一个名为Settings.CS的Windows窗体

它什么都没有..代码只有这么多

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;

namespace SteamBot
{
    public partial class Settings : Form
    {
        public Settings()
        {
            InitializeComponent();
        }
    }
}

然后我有另一个名为Bot.CS的CLASS。我想要做的是,在特定功能之后,我希望设置表单变得可见。在VB中它只是Settings.Visible = true

我如何在C#中执行此操作?请帮帮我。

3 个答案:

答案 0 :(得分:0)

让我们假设特定功能按钮点击

private void Button1_Click(Object sender, EventArgs e ) 
{
   Form1 myForm = new Form1();
   myForm.Show();
}

将Form1替换为您的设置表单的表单名称!

答案 1 :(得分:0)

解决方案1:如果您想首次显示Settings表单,则需要创建Form的实例变量并调用ShowDialog()方法显示它。

试试这个:

void SpecificFunction()
{
    //--at the end of MyFunction call settings form

    Settings frmSettings=new Settings();
    frmSettings.ShowDialog();    
}

解决方案2:如果您想要显示之前隐藏的Settings表单,则需要按照以下步骤进行操作Visible

第1步:使用Settings收集来识别/获取Application.OpenForms[]表单。
第2步:通过在上面的步骤中投射获得的Form表单来创建Settings的新实例变量。
第3步:将创建的实例变量上的Show()方法调用Show/Display Settings表单。

试试这个:

void SpecificFunction()
{
    //--at the end of MyFunction call settings form

    Form frmSettings = (Settings) Application.OpenForms["Settings"];
    frmSettings.Show();    
}

答案 2 :(得分:0)

我刚刚创建了这个新表单,单击按钮时会显示该表单:

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;

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

        private void button1_Click(object sender, EventArgs e)
        {
            Form f2 = new Form();
            f2.Visible = true;
            //f2.Show(); also works
        }
    }
}

如果要操作实例,也可以使用“this” 试一试