Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/275.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 在主窗体中使用另一个类中的方法_C#_Forms_Class_Methods - Fatal编程技术网

C# 在主窗体中使用另一个类中的方法

C# 在主窗体中使用另一个类中的方法,c#,forms,class,methods,C#,Forms,Class,Methods,我正在尝试使用Windows窗体和C#(如果相关的话,我正在使用Visual Studio 2010)创建一个待办事项列表程序,用户可以在其中添加新任务、设置标题及其说明,以及删除和编辑任务 通过将所有内容放入一个表单类,并为每个任务的“删除和编辑”按钮输入相同的“删除和编辑”代码(我将其设置为最多可以添加5个任务),我实现了这一点,但它非常混乱,我想将所有代码都放在任务标题中,在一个单独的类中编辑和删除,并在需要的地方调用每个方法 我花了两周的时间在互联网上搜索,试图找到一些有用的东西,但我对

我正在尝试使用Windows窗体和C#(如果相关的话,我正在使用Visual Studio 2010)创建一个待办事项列表程序,用户可以在其中添加新任务、设置标题及其说明,以及删除和编辑任务

通过将所有内容放入一个表单类,并为每个任务的“删除和编辑”按钮输入相同的“删除和编辑”代码(我将其设置为最多可以添加5个任务),我实现了这一点,但它非常混乱,我想将所有代码都放在任务标题中,在一个单独的类中编辑和删除,并在需要的地方调用每个方法

我花了两周的时间在互联网上搜索,试图找到一些有用的东西,但我对编码还不熟悉,我发现的很多东西不是相对的,或者我就是不懂。我使用了
formf1=newform1()并使用
f1.AddTask()没有错误,但当我运行程序并单击按钮时,什么也没有发生


我是这个网站的新手,不太确定需要什么,但我愿意做任何事情来让这个工作。任何帮助都将不胜感激。

请参阅类似示例,以从一个方法调用另一个方法,和/或设置值。这些是基于WinForms的。如果您使用WPF并使用Windows而不是窗体,只需更改任何窗体或窗口的上下文。

尝试构建一个附加类,将所有重复的代码放在该类中

public class CommonMethods() {

    public static void AddTask(Control c, Task t) {  /* code to add a task */ }
    public static void EditTask(Control c, Task t) {  /* code to edit a task */ }
    public static void DeleteTask(Control c, Task t) {  /* code to delete a task */ }

/*
etc... other methods here
*/
}

然后在表单中调用这些方法,并仅将需要添加/编辑/删除任务的控件传递给该方法

简单的问题是,您是否对按钮进行了编码?我尝试了您的建议,但它给了我一个错误“错误1无法找到类型或命名空间名称‘Control’(您是否缺少using指令或程序集引用)”,“Task”也是如此,并且它们不像您的按钮那样变蓝。“Control”和“Task”是什么意思表示?添加缺少的引用。我给你的代码只是为你指明方向,而不是你案例的真正代码。只要我没有你的完整代码,我就不能给你一个工作代码。重点是使用和外部类来处理所有这些操作,并从两种形式调用类方法。解决方案很简单…试着想一想,你会解决问题的。我想我明白,“控件”和“任务”是否指两种形式,例如“form1”和“form2”?此外,我调用该方法时遇到问题,我尝试了CommonMethods.AddTask();,但它出现了错误,“0参数的“AddTask”没有重载方法”,但我不确定我需要在括号中放什么。我试着把“ToDoList t,CommonMethods c”以及“ToDoList t=new ToDoList();”和“CommonMethods c=new CommonMethods();”放在括号外,还是类似于((form1)this.CommonMethods.CommonMethods).AddTask();P.S.谢谢你的帮助:)