c# - 方法没有重载匹配委托'EventHandler'
问题描述
我知道这些类型的问题还有其他答案,但他们通常说参数不匹配,但我相信我的参数匹配,所以我不知道为什么我的taskpagenextbtn_Click
. 我虽然我的参数与函数taskpagenextbtn.Click
中的行匹配TaskPage
。
public Task_Page(TextBox[] subjectnamearray, List<string> datatablesubjectnamearray, int numofsubjects)
{
InitializeComponent();
numoftasks.SelectedIndexChanged += (sender2, e2) => numoftasks_SelectedIndexChanged(sender2, e2,subjectnamearray, datatablesubjectnamearray, numofsubjects);
taskpagenextbtn.Click += (sender3, e3) => taskpagenextbtn_Click(sender3, e3, numofsubjects);
}
private void taskpagenextbtn_Click(object sender, EventArgs e,int numofsubjects)
{
Marks_and_Weighting_Table marksandweightingtable = new Marks_and_Weighting_Table(subjectnamearray, datatablesubjectnamearray, numofsubjects);
TextBox[] subject1tasksarray = new TextBox[] { subjectname1task1weighting, subjectname1task2weighting, subjectname1task3weighting, subjectname1task4weighting, subjectname1task5weighting, subjectname1task6weighting };
TextBox[] subject2tasksarray = new TextBox[] { subjectname2task1weighting, subjectname2task2weighting, subjectname2task3weighting, subjectname2task4weighting, subjectname2task5weighting, subjectname2task6weighting };
TextBox[] subject3tasksarray = new TextBox[] { subjectname3task1weighting, subjectname3task2weighting, subjectname3task3weighting, subjectname3task4weighting, subjectname3task5weighting, subjectname3task6weighting };
TextBox[] subject4tasksarray = new TextBox[] { subjectname4task1weighting, subjectname4task2weighting, subjectname4task3weighting,subjectname4task4weighting, subjectname4task5weighting, subjectname4task6weighting };
TextBox[] subject5tasksarray = new TextBox[] { subjectname5task1weighting, subjectname5task2weighting, subjectname5task3weighting, subjectname5task4weighting, subjectname5task5weighting, subjectname5task6weighting };
TextBox[] subject6tasksarray = new TextBox[] { subjectname6task1weighting, subjectname6task2weighting, subjectname6task3weighting, subjectname6task4weighting, subjectname6task5weighting, subjectname6task6weighting };
int i = 0;
int numberoftasks = Int32.Parse(numoftasks.Text);
string myString = numofsubjects.ToString();
MessageBox.Show(myString);
if (numofsubjects==2)
{
while (i<numberoftasks)
{
if (subject1tasksarray[i].Text.Trim() == string.Empty)
{
MessageBox.Show("Please fill out all textboxes.", "Error Message");
/*https://www.codeproject.com/Questions/496674/EmptyplusTextboxplusValidationplusinplusC*/
return;
}
if (subject2tasksarray[i].Text.Trim() == string.Empty)
{
MessageBox.Show("Please fill out all textboxes.", "Error Message");
/*https://www.codeproject.com/Questions/496674/EmptyplusTextboxplusValidationplusinplusC*/
return;
}
i = i + 1;
}
}
解决方案
基本上事件处理程序不允许您传递参数。如果要传递参数,则必须创建委托而不是直接添加事件处理程序。
https://www.codeproject.com/Articles/30458/Delegates-in-VB-NET
推荐阅读
- python - 请求超时:Python 的 HTTPServer 中的 timeout('timed out')
- r - 重命名R中的相关变量组
- forms - TYPO3 表单的自定义部分
- python - 多线程 Python 问题(分段错误)
- python - 如何在特定文本之后获取值?
- makefile - 将makefile自动变量值传递给从make调用的bash函数
- c# - LinqPad6 无法加载程序集以连接到我的项目
- amazon-web-services - 从 Step Function 错误启动 Codebuild 作业:....“未授权创建托管规则”
- android - androidx房间多个MATCH
- firebase - Flutter 上的 Uri.https 限制了我的 url 的长度