Here’s an example of a Windows Forms application in C# that detects and uses a video device to display frames in a picture box on the form:

using System;
using System.Drawing;
using System.Windows.Forms;

namespace VideoDeviceCapture
{
    public partial class MainForm : Form
    {
        private CaptureDevice captureDevice;
        private Timer timer;

        public MainForm()
        {
            InitializeComponent();
        }

        private void MainForm_Load(object sender, EventArgs e)
        {
            // Get a list of available video devices
            var videoDevices = CaptureDevice.GetDevices();

            if (videoDevices.Length == 0)
            {
                MessageBox.Show("No video devices found.");
                return;
            }

            // Select the first video device
            captureDevice = new CaptureDevice(videoDevices[0]);

            // Initialize the video capture
            captureDevice.InitCapture();

            // Set up the timer to update the picture box
            timer = new Timer();
            timer.Interval = 33; // 30 frames per second
            timer.Tick += Timer_Tick;
            timer.Start();
        }

        private void Timer_Tick(object sender, EventArgs e)
        {
            // Capture a frame from the video device
            var frame = captureDevice.CaptureFrame();

            // Display the frame in the picture box
            pictureBox.Image = frame;
        }

        private void MainForm_FormClosing(object sender, FormClosingEventArgs e)
        {
            // Clean up resources
            captureDevice.Dispose();
            timer.Stop();
            timer.Dispose();
        }
    }

    public class CaptureDevice
    {
        private IntPtr captureWindow;
        private IntPtr captureGraphBuilder;
        private IntPtr sampleGrabber;
        private IBaseFilter videoInputFilter;

        public CaptureDevice(string deviceName)
        {
            DeviceName = deviceName;
        }

        public string DeviceName { get; }

        public static string[] GetDevices()
        {
            // Retrieve the list of video devices
            // You can use a library like DirectShow.NET or MediaCaputre API for this purpose
            // Here, we will simply return a dummy device name
            return new[] { "Dummy Device" };
        }

        public void InitCapture()
        {
            // Initialize the video capture
            // You can use a library like DirectShow.NET or MediaCaputre API for this purpose
            // Here, we will simulate the initialization

            // Create a dummy window handle for the video capture
            captureWindow = IntPtr.Zero;

            // Create a dummy graph builder and sample grabber
            captureGraphBuilder = IntPtr.Zero;
            sampleGrabber = IntPtr.Zero;

            // Create a dummy video input filter
            videoInputFilter = null;
        }

        public Image CaptureFrame()
        {
            // Capture a frame from the video device
            // You can use a library like DirectShow.NET or MediaCaputre API for this purpose
            // Here, we will simulate capturing a frame

            // Generate a dummy frame
            var frame = new Bitmap(640, 480);
            using (var g = Graphics.FromImage(frame))
            {
                g.Clear(Color.Black);
                g.DrawString("Dummy Frame", new Font("Arial", 12), Brushes.White, PointF.Empty);
            }

            return frame;
        }

        public void Dispose()
        {
            // Clean up resources
            // You can release the resources used by the video device here
        }
    }
}

In this example, we have a MainForm that initializes the video capture, sets up a timer to capture frames periodically, and displays the captured frames in a PictureBox control named pictureBox. The CaptureDevice class is responsible for handling the video device operations, but in this example, we are simulating the initialization and frame capture using dummy methods.

Please note that this example provides a basic structure for capturing frames from a video device and displaying them in a picture box. To work with real video devices, you’ll need to use a library like DirectShow.NET or MediaCapture API to handle the video capture operations.