Byulent Asked:2020-05-18 03:20:57 +0000 UTC2020-05-18 03:20:57 +0000 UTC 2020-05-18 03:20:57 +0000 UTC 如何判断当前是从哪个窗体打开的? 772 从一种形式,使用类似的代码(实际上是标准代码)启动另一种形式: private void Show_Click(object sender, EventArgs e) { Child form1 = new Child(); form1.ShowDialog(); } 如何找出启动的表单类型Child?基于此,应确定表格的内容Child。 c# 2 个回答 Voted VladD 2020-05-18T03:28:15Z2020-05-18T03:28:15Z 没门。 在 C# 中没有合法的方法来找出谁调用了给定的代码。即使有可能,这也是不好的做法:它既不可重构也不可测试。 让显示表单的代码自行配置,向其传递必要的信息。在最坏的情况下,它充其量只是this一个描述需要显示的内容的专用数据结构。 一个更好的选择是从 UI 代码(源表单代码)中移动业务逻辑(在什么情况下打开一个新窗口,以及在其中显示什么信息),但这很可能需要对项目。 Best Answer user176262 2020-05-18T03:32:40Z2020-05-18T03:32:40Z 好吧,因为@VladD 认为用“砰”的一声回答并不可耻:) 尝试坚持一种单向的信息流:创建的表单/类Child知道Child,Child但不知道创建它的表单/类。 (如果Child在不是窗体的类方法中创建会怎样?想想看。) 馈入类构造函数Child,或将其设置为行为指示器的属性Child。
没门。
在 C# 中没有合法的方法来找出谁调用了给定的代码。即使有可能,这也是不好的做法:它既不可重构也不可测试。
让显示表单的代码自行配置,向其传递必要的信息。在最坏的情况下,它充其量只是
this一个描述需要显示的内容的专用数据结构。一个更好的选择是从 UI 代码(源表单代码)中移动业务逻辑(在什么情况下打开一个新窗口,以及在其中显示什么信息),但这很可能需要对项目。
好吧,因为@VladD 认为用“砰”的一声回答并不可耻:)
尝试坚持一种单向的信息流:创建的表单/类
Child知道Child,Child但不知道创建它的表单/类。(如果
Child在不是窗体的类方法中创建会怎样?想想看。)馈入类构造函数
Child,或将其设置为行为指示器的属性Child。