如何单击对话框上的“确定”按钮

问题描述 投票:0回答:1

我需要以编程方式单击对话框上的“确定”按钮。我已经制作了一个片段,无需单击对话框。我知道理论上不需要,但出于某种原因它只有在您单击某些功能的“确定”时才有效。

片段1:

ConnPropsForm propsForm = new ConnPropsForm();

 editOutput.Text = "";

 propsForm.editUsername.Text = User;
 propsForm.editPassword.Text = Password;
 propsForm.editAddress.Text = _HOST;
 propsForm.editPort.Value = Convert.ToInt32(_PORT);
 propsForm.txtPrivateKey.Text = string.Empty;
 propsForm.txtPrivateKeyPassword.Text = string.Empty;
 propsForm.txtTrustedKeys.Text = string.Empty;

 client.Username = propsForm.editUsername.Text;
 client.Password = propsForm.editPassword.Text;
 client.TrustedKeysFile = propsForm.txtTrustedKeys.Text;

代码片段 1 只是设置对话框。这里没什么特别的

片段2:

if (propsForm.ShowDialog(this) == DialogResult.OK)
{
    editOutput.Text = "";

    client.Username = propsForm.editUsername.Text;
    client.Password = propsForm.editPassword.Text;

    if (propsForm.txtPrivateKey.Text != "")
    {
        try
        {
            Sshkeymanager keymanager = new Sshkeymanager();
            keymanager.ImportFromFile(propsForm.txtPrivateKey.Text, propsForm.txtPrivateKeyPassword.Text);

            client.Key = keymanager.Key;
        }
        catch (Exception E)
        {
            MessageBox.Show(E.Message);
        }
    }

    client.TrustedKeysFile = propsForm.txtTrustedKeys.Text;

    try
    {
        client.Connect(propsForm.editAddress.Text, (int)propsForm.editPort.Value);

        LoadRoot();
        UpdateControls();
    }
    catch (Exception E)
    {
        MessageBox.Show(E.Message);
    }
}

片段 2 就是神奇之处。我想测试一下“单击“确定”是否会有所不同。目前正在对我正在构建的机器人的问题进行故障排除。如果您想知道的话。机器人的工作实际上是每 30 天更新一次密码。在完美的世界中,我不需要对话框,也不需要以编程方式单击“确定”按钮,但 IT 之神现在对我很生气。我想过做一个循环来遍历每个控件,直到找到“btnOk”按钮,但我希望有更好的方法.

c# winforms dialog
1个回答
0
投票

在 Winforms 中,如果您可以直接访问运行该按钮的按钮,则可以执行以下操作:

btnOk.PerformClick();
© www.soinside.com 2019 - 2024. All rights reserved.