当项目中有3个表单和数据在C#中的表单之间传输时如何调用表单?

StackOverflow https://stackoverflow.com/questions/1012631

  •  06-07-2019
  •  | 
  •  

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

我不想触及Program.cs文件。

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

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

无法在intellisense中找到语法你可以帮帮忙吗?

提前致谢..

有帮助吗?

解决方案

您能解释为什么不想触摸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属性设置为“Public”。或“内部”或允许从课堂外访问它。

其他提示

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

创建一个新的winforms项目并打开program.cs。您可以使用启动表单的实例查看Application.Run的调用位置。这就是你必须要做的。

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


回应评论:

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

做到这一点。然后去获取CLR Via C#的副本。你不会后悔(只要你跳过前几章!)

  

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

     

我不想触及Program.cs文件。

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

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top