如何在c#中使用Aforge直接显示从主形式到另一形式执行设备摄像机

本文关键字:摄像机 执行 显示 Aforge | 更新日期: 2023-09-27 18:11:53

我在执行设备从主要形式到另一个形式的问题,我使用组合框来选择设备,在我从主要形式选择设备后,我点击按钮,将打开另一个形式,这另一个形式有一个按钮启动,当我点击它,它应该开始运行相机没有选择设备了,因为我已经在主要形式,但我得到了一个异常说。

"对象引用未设置为对象的实例。"

这是另一种形式的代码。

private void start_Click_1(object sender, EventArgs e)
        {
            if (start.Text == "&Start")
            {
                if (DeviceExist)
                {
                    frmMain cam = new frmMain();
                    videoSource = new VideoCaptureDevice(videoDevices[cam.comboBox1.SelectedIndex].MonikerString); // The exception shows here!
                    videoSource.NewFrame += new NewFrameEventHandler(video_NewFrame);
                    CloseVideoSource();
                    videoSource.DesiredFrameSize = new Size(160, 120);
                    //videoSource.DesiredFrameRate = 10;
                    videoSource.Start();
                    lblStat.Text = "Device running...";
                    start.Text = "&Stop";
                }
            }
        }

你认为这里的问题是什么?

如何在c#中使用Aforge直接显示从主形式到另一形式执行设备摄像机

frmMain cam = new frmMain();
videoSource = new VideoCaptureDevice(videoDevices[cam.comboBox1.SelectedIndex].MonikerString);

您使用cam = new frmMain()创建frmMain的新实例,并使用默认为-1的cam.comboBox1.SelectedIndex访问它。这会导致错误