在C#应用中自动单击确定按钮

时间:2018-08-25 08:33:10

标签: c# winforms dialogresult

早上好

我有一个c#应用程序,如果您按开始按钮,将打开一个对话框,并且将自动按确定按钮。问题是我不知道该怎么做。

代码如下:

private void Start_Click(object sender, EventArgs e)
    {
        if (captureDevice.ShowDialog(this) == DialogResult.OK)
        {
            VideoCaptureDevice videoSource = captureDevice.VideoDevice;
            FinalVideo = captureDevice.VideoDevice;
            FinalVideo.NewFrame += new NewFrameEventHandler(FinalVideo_NewFrame);
            FinalVideo.Start();
       }
    }

我尝试过:

(1)删除if语句以直接运行其中的内容 (2)在if语句之前放置DialogResult.OK = true (3)if语句之前的captureDevice.DialogResult.OK = true;

Image shows the dialogbox when start is pressed

3 个答案:

答案 0 :(得分:1)

此对话框使您可以选择源捕获设备。如果要绕过此对话框,则应在代码中指定源设备。如果您使用AForge.Net this link可以帮助您。如果没有,请在您使用的组件或库的文档中搜索适当的解决方案。

答案 1 :(得分:0)

向表单添加新按钮。称为“ 设置”。在此按钮的事件处理程序中,您大致将开始按钮的上半部分放入。在 MainForm 中创建一个 Settings 对象,您将在其中存储所选的摄像机。

private void Settings_Click(object sender, EventArgs e)
{
    if (captureDevice.ShowDialog(this) == DialogResult.OK)
    {
        settings.VideoSource = captureDevice.VideoDevice;
    }
}

private void Start_Click(object sender, EventArgs e)
{
    FinalVideo = settings.VideoSource;
    FinalVideo.NewFrame += new NewFrameEventHandler(FinalVideo_NewFrame);
    FinalVideo.Start();
}

希望这会有所帮助。

答案 2 :(得分:0)

我找到了解决该问题的方法,并且使用了:

SendKeys.Send(“ {ENTER}”);

我在if语句之前使用了它,并且它与Start_Click方法一起使用,但是当我在称为Start_Vid()的方法中使用它时,出现错误:

'SendKeys无法在此应用程序内运行,因为该应用程序未处理Windows消息。更改应用程序以处理消息,或使用SendKeys.SendWait方法'

我不知道为什么它不起作用以及错误消息的含义,所以我应该创建另一个问题以使其得到回答,或者您可以在这里解决吗?