1

大家早,

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

代码如下:

private void Start_Click(object sender, EventArgs e)
{
    if (captureDevice.ShowDialog(this) == DialogResult.OK)
    {
         var videoSource = captureDevice.VideoDevice;

         FinalVideo = captureDevice.VideoDevice;
         FinalVideo.NewFrame += new NewFrameEventHandler(FinalVideo_NewFrame);
         FinalVideo.Start();
    }
}

我努力了:

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

图像显示按下开始时的对话框

4

3 回答 3

1

此对话框允许您选择源捕获设备。如果你想绕过这个对话框,你应该在你的代码中指定源设备。如果你使用 AForge.Net这个链接可以帮助你。如果没有在您使用的组件或库的文档中搜索适当的解决方案。

于 2018-08-25T10:09:30.077 回答
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();
}

希望这可以帮助。

于 2018-08-25T08:54:24.470 回答
0

我已经找到了解决这个问题的方法,它是使用:

SendKeys.Send("{ENTER}");

我在 if 语句之前使用它,它与 Start_Click 方法一起使用,但是当我在名为 Start_Vid() 的方法中使用它时,我收到错误:

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

我不知道为什么它不应该工作以及错误消息的含义是什么所以我应该创建另一个问题来回答这个问题,或者你认为可以在这里解决吗?

于 2018-08-25T12:50:29.483 回答