/// <summary> /// Configure the VLC Control(s) and overlay(s) that handle mouse events /// </summary> private void SetupVlc() { NumberOfViews = GetNumberOfViews(); myVlcControl = new VlcControl[NumberOfViews]; vlcOverlay = new VlcOverlay[NumberOfViews]; string[] vlcMediaOptions = Regex.Split(getIniValue("VlcOptions"), "\\s*,\\s*"); // Split by comma and trim whitespace BgPtzWorker = new BackgroundWorker[NumberOfViews]; for (int i = 0; i < NumberOfViews; i++) { BgPtzWorker[i] = new BackgroundWorker(); BgPtzWorker[i].WorkerReportsProgress = true; BgPtzWorker[i].WorkerSupportsCancellation = true; BgPtzWorker[i].DoWork += BgPtzWorker_DoWork; myVlcControl[i] = new VlcControl(); vlcOverlay[i] = new VlcOverlay() { Name = "VLC Overlay " + i, BackColor = Color.Transparent, TabIndex = i }; //, Parent = myVlcControl[i], Dock = DockStyle.Fill, TabIndex = i }; vlcOverlay[i].GotoPtzPreset += Viewer_GotoPtzPreset; vlcOverlay[i].ToggleMute += Viewer_ToggleMute; // Add panel to VlcControl container to capture mouse events Panel MouseEventPanel = new Panel() { Parent = myVlcControl[i], BackColor = Color.Transparent, Dock = DockStyle.Fill, TabIndex = i, }; MouseEventPanel.MouseEnter += VlcOverlay_MouseEnter; MouseEventPanel.MouseLeave += VlcOverlay_MouseLeave; MouseEventPanel.MouseDoubleClick += VlcOverlay_MouseDoubleClick; MouseEventPanel.MouseMove += VlcOverlay_MouseMove; MouseEventPanel.MouseDown += VlcOverlay_MouseDown; MouseEventPanel.MouseUp += VlcOverlay_MouseUp; MouseEventPanel.MouseWheel += VlcOverlay_MouseWheel; ((System.ComponentModel.ISupportInitialize)(myVlcControl[i])).BeginInit(); myVlcControl[i].VlcLibDirectory = VlcViewer.GetVlcLibLocation(); // Tried to call once outside loop, but it causes in exception on program close myVlcControl[i].VlcMediaplayerOptions = vlcMediaOptions; // new string[] { "--network-caching=150", "--video-filter=deinterlace" }; myVlcControl[i].Location = new Point(0, 0); myVlcControl[i].Name = string.Format("VLC Viewer {0}", i); myVlcControl[i].Rate = (float)0.0; myVlcControl[i].BackColor = Color.Gray; myVlcControl[i].TabIndex = i; //myVlcControl[i].MouseDoubleClick += VlcOverlay_MouseDoubleClick; // Events myVlcControl[i].Playing += OnVlcPlaying; myVlcControl[i].EncounteredError += MyVlcControl_EncounteredError; myVlcControl[i].Buffering += Form1_Buffering; //myVlcControl[i].Controls.Add(vlcOverlay[i]); // Had to add this line to make work ((System.ComponentModel.ISupportInitialize)(myVlcControl[i])).EndInit(); } setSizes(); }