0

我在将设备从主窗体执行到另一个窗体时遇到问题我使用组合框选择设备,从主窗体中选择设备后,我单击将打开另一个窗体的按钮,这个另一个窗体有一个按钮启动,当我点击它,它应该开始运行相机而不再选择设备,因为我已经在主窗体中完成了它,但我得到了一个例外说。

“你调用的对象是空的。”

这是我的另一种形式的代码。

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

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

4

1 回答 1

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

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

于 2013-05-02T13:22:13.313 回答