private async void submitRequestButton_Click(DateTime dateFormat, DateTime startFormat, DateTime endFormat, EventArgs e)
{
ParseObject request = new ParseObject("Shifts");
request["Name"] = ParseUser.CurrentUser.Username;
request["Shift"] = shiftBox.Text;
request["Rental"] = rentalBox.Checked;
request["Location"] = locationBox.Text;
request["Date"] = dateFormat.ToString("MMMM dd, yyyy");
request["startTime"] = startFormat.ToString("t", CultureInfo.CreateSpecificCulture("en-us"));
request["endTime"] = endFormat.ToString("t", CultureInfo.CreateSpecificCulture("en-us"));
await request.SaveAsync();
}
private DateTime datePicker_ValueChanged(DateTime dateFormat, EventArgs e)
{
dateFormat = datePicker.Value;
return dateFormat;
}
private DateTime startTimePicker_ValueChanged(DateTime startFormat, EventArgs e)
{
startFormat = startTimePicker.Value;
return startFormat;
}
private DateTime endTimePicker_ValueChanged(DateTime endFormat, EventArgs e)
{
endFormat = endTimePicker.Value;
return endFormat;
}
我不明白为什么我在方法2,3和4中收到此错误。
"方法"没有过载匹配委托' System.EventHandler'?
如果您需要查看更多代码,请告诉我们。我非常确定所有内容都已正确连接。
看起来错误来自:this.datePicker.ValueChanged += new System.EventHandler(this.datePicker_ValueChanged);
(其他2种方法也是如此)。
请帮忙!我是C#的新手,所以我不完全理解为什么会出现这种错误。
答案 0 :(得分:2)
所有事件方法的签名都是错误的。第一个参数应该是object
,表示触发事件的控件,返回类型应为void
。
private void datePicker_ValueChanged(object sender, EventArgs e)
{
// Either cast "sender" to the appropriate type of control,
// or just reference the control directly if only one could be subscribed
datePicker.Value
}
看起来你甚至不需要这些活动。只需在执行时从其他方法中引用控件。
request["Date"] = datePicker.Value.ToString("MMMM dd, yyyy");
request["startTime"] = startTimePicker.Value.ToString("t", CultureInfo.CreateSpecificCulture("en-us"));
request["endTime"] = endTimePicker.Value.ToString("t", CultureInfo.CreateSpecificCulture("en-us"));
答案 1 :(得分:1)
您的事件方法应如下所示:
private void datePicker_ValueChanged(object sender, EventArgs e)
{
DateTimePicker picker = (DateTimePicker)sender;
//do stuff
}