当项目中有3个表单和数据在C#中的表单之间传输时如何调用表单?
-
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”。文件可以打开。
我
提前致谢..
解决方案
您能解释为什么不想触摸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(..)的表单实例确定了启动表单。