【发布时间】:2012-05-21 13:19:48
【问题描述】:
我在 Form1 中有以下函数,希望在单击 Form2 中的按钮时调用它。
public object GetStudents()
{
using (var DB = new myView1())
{
var studentList = (from s in DB.View123
select new { s.StudentName, s.StudentNumber, s.ClassName, s.StreamName, s.ParentName }).ToList();
dataGridViewStudents.DataSource = students;
return students.ToList();
}
}
上面的函数在 Form1 中,我如何从 Form2 中的 button_Click 事件中调用它。这在 VB.NET 中很简单
【问题讨论】:
-
你在某处有
Form1类型的变量吗?在 C# 和 VB.Net 中大致相同。 -
这是一颗宝石!结合您的问题,这是混合表示层和我长期以来看到的业务逻辑的最佳示例。给你一个正经的答复:你为什么不把数据检索代码放到它自己的类中呢?在这种情况下,两种形式都可以使用它,而无需您将要引入的交叉依赖关系。
-
@Thorsten Dittmar:但除了宝石方面,你如何简单地完成我的要求? ---- 假设这是一个快速演示,代码将被重构!
-
@SQL.NET Warrior,如果您必须就一个应用程序提出这么多问题,不妨考虑尝试一个更基本的项目。
-
好吧,将
Form1的实例传递给Form2或在您需要的地方创建Form1的实例。但是为什么不立即重构它......