简体   繁体   English

如何以编程方式单击 MessageBox 上的按钮

[英]How can I programmatically click a button on a MessageBox

I have a radiobutton when i check it, it should give a message我检查时有一个单选按钮,它应该给出一条消息

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 
}

how can I answer this message from internal code in a button to be NO?如何从按钮中的内部代码回答此消息是否?

I don't want the message to appear我不希望出现消息

If you seriously don't want it then just perform your action when the check changes for that radio button.如果您真的不想要它,那么只需在该单选按钮的检查更改时执行您的操作。

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
   {
}

When you click on radio button you send the appropiate delegate function(action) and Messagebox result.当您单击单选按钮时,您将发送适当的委托函数(操作)和消息框结果。 The action handles yes/no cases.该操作处理是/否的情况。

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);
    }
}

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM