【问题标题】:Showing a different form in c#?在 c# 中显示不同的形式?
【发布时间】:2018-09-16 03:07:01
【问题描述】:

我查看了几个不同的线程并试图找到正确的答案,但都没有奏效。我正在尝试隐藏 当前 表单。我知道该怎么做,但是当我执行 ProjectName.Form2.Visible() 时,它给了我一个错误并说只使用 Visible(),不幸的是,这使得Form1 可见。

【问题讨论】:

  • 嗨,欢迎来到 SO。添加一些代码可以帮助这里的每个人理解问题并尝试帮助您是一个好主意。您可以参考此指南:stackoverflow.com/help/mcve

标签: c# winforms


【解决方案1】:

其实form没有Visible()方法,有布尔型Visible属性和Show()方法:

请注意,您应该先创建一个Form2的实例,然后调用它的Show()方法,或者将它的Visible属性设置为true。

Form2 frm = new Form2();
frm.Visible = true;  // or frm.Show();

【讨论】:

  • 一切正常,除了 CurPass 字符串。 ` if (textBox1.Text == curPass || textBox1.Text == "Cameron33" || textBox1.Text == "completebetakey") { Form2 frm = new Form2(); frm.Show();隐藏(); } else { MessageBox.Show("Yikes. 那是不正确的。", "Uh oh."); }` 我得到了“哎呀。那是不正确的。”当我输入 curPass 字符串时的消息,但在正常传递(“Cameron33”)中它工作得很好
  • 这种方式不好,可以过来聊聊吗? https://chat.stackoverflow.com/rooms/180124/ashkan-mobayen-khiabani
  • 读取curPass的文件是否存在于可执行路径中?可能是您没有该文件或其路径错误。
  • 我没有 20 个代表,你有意见不和吗?
  • 哦,您需要代表加入聊天吗?我的Skype id 是am.pro。你有Skype吗?
【解决方案2】:

您需要创建表单的一个新实例并在该实例上调用.Visible()

var newForm = new ProjectName.Form2();
newForm.Visible();

当您调用 ProjectName.Form2.Visible() 时,它会在名为 Visible 的类上查找一个不存在的静态方法。

【讨论】:

  • 无法通过实例引用访问成员“Form2.Visible()”;改为使用类型名称来限定它
  • @Exvient 阅读了我的第二段。当你这样调用它时,你试图访问一个不存在的静态方法。您需要像我提供的代码示例一样创建表单的实例
  • 我做到了:P var newForm = new JadeComplete.Form2(); newForm.Visible();隐藏();
【解决方案3】:

不要忘记实例化后显示表单:

Form2 f2 = new Form2();
f2.Show();
Visible = false;

坦率地说,我不确定是否可以在不运行该方法的情况下只显示表单,这就是我一直这样做的方式。同样正如 Ashkan 上面提到的,Show 是一个方法,而 Visible 是一个 bool 属性。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2021-10-14
    • 2021-10-08
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多