C# 如何以编程方式单击MessageBox上的按钮
我有一个单选按钮,当我检查它时,它应该会给出一条信息C# 如何以编程方式单击MessageBox上的按钮,c#,winforms,messagebox,C#,Winforms,Messagebox,我有一个单选按钮,当我检查它时,它应该会给出一条信息 DialogResult click = MessageBox.Show("Would you like to convert the actual values to US Customary ?\n Clicking No changes just the unit system.", "Change Unit Systems to US Customary", MessageBoxButtons.YesNo, MessageBoxIco
DialogResult click = MessageBox.Show("Would you like to convert the actual values to US Customary ?\n Clicking No changes just the unit system.", "Change Unit Systems to US Customary", MessageBoxButtons.YesNo, MessageBoxIcon.Question, MessageBoxDefaultButton.Button2);
if (click == DialogResult.Yes)
{
//some code
}
如何从按钮中的内部代码回答此消息为否?当您单击单选按钮时,将发送相应的代理功能(操作)和Messagebox结果。 该操作处理是/否情况
public void HandleMessageBoxResult(DialogResult result, Action<DialogResult> action)
{
action(result);
}
public void Radio1Action(DialogResult result)
{
switch (result)
{
case DialogResult.Yes:
MessageBox.Show("Yes Clicked for Radio1");
break;
case DialogResult.No:
MessageBox.Show("No Clicked for Radio1");
break;
}
}
public void Radio2Action(DialogResult result)
{
switch (result)
{
case DialogResult.Yes:
MessageBox.Show("Yes Clicked for radioButton2");
break;
case DialogResult.No:
MessageBox.Show("No Clicked for radioButton2");
break;
}
}
private void radioButton1_CheckedChanged(object sender, EventArgs e)
{
if(radioButton1.Checked)
{
DialogResult result = MessageBox.Show("Message for radioButton1", "title", MessageBoxButtons.YesNo, MessageBoxIcon.Question, MessageBoxDefaultButton.Button2);
HandleMessageBoxResult(result, Radio1Action);
}
}
private void radioButton2_CheckedChanged(object sender, EventArgs e)
{
if (radioButton2.Checked)
{
DialogResult result = MessageBox.Show("Message for radioButton2", "title", MessageBoxButtons.YesNo, MessageBoxIcon.Question, MessageBoxDefaultButton.Button2);
HandleMessageBoxResult(result, Radio2Action);
}
}
public void HandleMessageBoxResult(DialogResult结果,Action操作)
{
行动(结果);
}
公共空间放射性(DialogResult结果)
{
开关(结果)
{
案例对话框结果。是:
MessageBox.Show(“对Radio1单击是”);
打破
案例对话框结果。否:
MessageBox.Show(“没有为Radio1单击”);
打破
}
}
公共空间放射性2作用(DialogResult结果)
{
开关(结果)
{
案例对话框结果。是:
MessageBox.Show(“对radioButton2单击是”);
打破
案例对话框结果。否:
MessageBox.Show(“没有单击radioButton2”);
打破
}
}
私有void radioButton1_CheckedChanged(对象发送方,事件参数e)
{
如果(radioButton1.选中)
{
DialogResult result=MessageBox.Show(“radioButton1的消息”、“标题”、MessageBoxButtons.YesNo、MessageBoxIcon.Question、MessageBoxDefaultButton.Button2”);
HandleMessageBoxResult(结果,放射性1);
}
}
私有void radioButton2\u CheckedChanged(对象发送方,事件参数e)
{
如果(radioButton2.选中)
{
DialogResult result=MessageBox.Show(“radioButton2的消息”、“标题”、MessageBoxButtons.YesNo、MessageBoxIcon.Question、MessageBoxDefaultButton.Button2”);
HandleMessageBoxResult(结果,放射2作用);
}
}
我不想让消息出现
如果你真的不想要它,那么只要在单选按钮的检查更改时执行你的操作即可
private void radioButton1_CheckedChanged(Object sender, EventArgs e)
{
//Validate to make sore it was not just deselected
if (radioButton1.Checked)
{
//Do whatever I want when the use checks this radio button
{
}
此消息框指定了一个单选按钮,当您单击它将显示的单选按钮时,我有另一个按钮将更改单选按钮,因此我不希望为用户显示消息。我需要为其提供默认答案“否”,如果按钮未单击,单选按钮将更改。您好。我更新答案。检查它是否是期望的目标。唯一的方法是在不同的线程上使用代码<代码>MessageBox.Show会一直阻止,直到单击一个按钮为止,因此在此之前,您无法在UI线程上执行任何其他操作。也许,如果您不想显示该消息,那么首先不要编写代码来显示该消息。这正是我想要的,我不想显示该消息。我如何才能做到这一点?根据DialogResult值,您正在调用不同的方法?然后,您应该从按钮单击代码调用该方法,而不显示消息框