private void OnStart(object sender, EventArgs e) { if (toupcam_ != null) { return; } ToupCam.Instance[] arr = ToupCam.Enum(); if (arr.Length <= 0) { MessageBox.Show("no device"); } else { toupcam_ = new ToupCam(); if (!toupcam_.Open(arr[0].id)) { toupcam_ = null; } else { checkBox1.Enabled = true; trackBar1.Enabled = true; trackBar2.Enabled = true; trackBar3.Enabled = true; comboBox1.Enabled = true; button2.Enabled = true; button3.Enabled = true; button2.ContextMenuStrip = null; InitSnapContextMenuAndExpoTimeRange(); trackBar2.SetRange(2000, 15000); trackBar3.SetRange(200, 2500); OnEventTempTint(); uint resnum = toupcam_.ResolutionNumber; uint eSize = 0; if (toupcam_.get_eSize(out eSize)) { for (uint i = 0; i < resnum; ++i) { int w = 0, h = 0; if (toupcam_.get_Resolution(i, out w, out h)) { comboBox1.Items.Add(w.ToString() + "*" + h.ToString()); } } comboBox1.SelectedIndex = (int)eSize; int width = 0, height = 0; if (toupcam_.get_Size(out width, out height)) { bmp_ = new Bitmap(width, height, PixelFormat.Format24bppRgb); ev_ = new DelegateEvent(DelegateOnEvent); if (!toupcam_.StartPullModeWithCallback(new ToupTek.ToupCam.DelegateEventCallback(DelegateOnEventCallback))) { MessageBox.Show("failed to start device"); } else { bool autoexpo = true; toupcam_.get_AutoExpoEnable(out autoexpo); checkBox1.Checked = autoexpo; trackBar1.Enabled = !checkBox1.Checked; } } } } } }