-2

我的项目 form1 、 form2 、 form3 中有 3 个表单,现在运行顺利,现在我在项目 form4 中又添加了一个。前三个表单已经通过 ShowDialog() 链接起来。

我不想触摸 Program.cs 文件。

我如何首先调用表格 4 作为启动表格?早期的表格 1 是我的项目中出现的第一个表格。

我的 form1 rdb1 和 rdb2 中还有 2 个单选按钮。在我的 form2 中,我将 openFileDialog 附加到一个按钮 Select 。现在我想当用户在 form1 中选择 rdb1 时,form2 中的 openFileDialog 过滤器应该打开仅以“.XML”作为扩展名的文件,当在 Form1 中选择 rdb2 时,在 Form2 中只能打开“.TXT”文件。

无法在智能感知中找到它的语法,你能帮忙吗?

提前致谢..

4

3 回答 3

2

你能解释一下为什么你不想碰你的 Program.cs 文件吗?这正是您更改启动表单的地方。

更改:

Application.Run(new Form1());

到:

Application.Run(new Form4());

其次,您可以使用 Filter 属性在 Open- 和 SaveFileDialog 上设置过滤器。将其设置为如下值:

XML Files|*.xml

或者对于文本:

Text Files|*.txt

编辑添加:

要从另一种形式执行此操作:

class Form1 {
  Form2 form2;

  void Form1_Load(object sender, EventArgs e) {
    form2 = new Form2();
  }

  void rdb1_CheckedChanged(object sender, EventArgs e) {
    if (rdb1.Checked) 
      form2.openFileDialog1.Filter = "XML Files|*.xml";
    else
      form2.openFileDialog1.Filter = "Text Files|*.txt";
  }
}

确保您已将 Form2 设计器上 openFileDialog1 的 Modifiers 属性设置为“公共”或“内部”,以允许从类本身外部对其进行访问。

于 2009-06-18T13:40:05.177 回答
1

您必须触摸 program.cs。这就是创建和运行初始表单的地方。

创建一个新的 winforms 项目并打开 program.cs。您可以看到 Application.Run 在哪里调用了启动表单的实例。这就是你必须做的。

不要害怕。一切都会好的。


回应评论:

Form1_Load 事件Form1 在 Form1 内触发。您必须返回调用链并找到 Form1 被实例化并传递给 Application.Run 的位置。那是在program.cs 中。

去做吧。然后通过 C# 获取 CLR 的副本。你不会后悔的(只要你跳过前几章!)

于 2009-06-18T13:41:11.603 回答
0

我如何首先调用表格 4 作为启动表格?

我不想触摸 Program.cs 文件。

为什么不想接触 Program.cs?传递给 Application.Run(..) 的表单实例决定了启动表单。

于 2009-06-18T13:40:17.283 回答