internal bool FillboxCaptureDevice() { var videoDevices = new FilterInfoCollection(FilterCategory.VideoInputDevice); if (videoDevices.Count > 0) { boxCaptureDevice.Enabled = true; int selectedIndex = boxCaptureDevice.SelectedIndex; boxCaptureDevice.Items.Clear(); if (!string.IsNullOrEmpty(VideoDevice)) { var savedDevices = videoDevices.Where(d => d.ToString() == VideoDevice); if (savedDevices.Count() > 0) { var savedDevice = savedDevices.First(); selectedIndex = videoDevices.IndexOf(savedDevice); } } for (var i = 0; i < videoDevices.Count; i++) { boxCaptureDevice.Items.Add(videoDevices[i]); } boxCaptureDevice.SelectedIndex = selectedIndex; return(true); } else { boxCaptureDevice.Enabled = false; boxCaptureDevice.Items.Clear(); return(false); } }