我有一个询问问题的程序,我希望它可以跟踪用户失败了多少个问题,单击按钮就会生成问题,我希望它可以跟踪用户是否被问到了一个问题,以便将其标记为未回答。
如果用户单击该按钮以生成另一个问题,它将知道该问题未得到回答,并增加计数器。当前会显示错误消息
“ NextGasQuestion_Click”没有重载匹配委托“ EventHandler”
以下是处理程序代码:
private void NextGasQuestion_Click(object sender, EventArgs e,bool QuestionAnswered,int GasQuestionsFailed)
{
if (QuestionAnswered == false)
{
GasQuestionsFailed++;
}
} // Added by edit
答案 0 :(得分:0)
您不能将参数传递给按钮单击功能,但可以使全局变量在按钮单击和其他作用域中有效:
例如:
bool QuestionAnswered = true; // it is outside the button click or other functions
void SomeMethod()
{
QuestionAnswered = false;
}
private void NextGasQuestion_Click(object sender, EventArgs e)
{
if (!QuestionAnswered)
{
GasQuestionsFailed++;
}
}
答案 1 :(得分:0)
如果您确实想将某些内容传递给按钮事件,则可以使用按钮上的Tag
属性。您可以按照以下步骤在事件处理程序内部进行访问。
private void button1_Click(object sender, EventArgs e)
{
var btn = sender as Button;
if (btn == null) return;
var yourValue = btn.Tag as YourType;
if (yourValue != null)
{
//Do Stuff
}
}
当其他人有状态时,您可能应该只在窗体上创建一个变量并增加该值,而不是在按钮自身上保持状态。