using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using System.Linq; using System.Text; using System.Threading; using System.Threading.Tasks; using System.Windows.Forms; using Kitware.VTK; using chutian_parking_terminal.front_terminal_manager; using Sunny.UI; using tool; namespace chutian_parking_terminal { public partial class FormVtk : UIForm { public class Car_info { public bool correct = false; public double cx; public double cy; public double theta; public double wheel_base; public double width; public double front_theta; public Car_info() { } } class Wheel_info { double m_radius = 0.35; double m_width = 0.2; public double[] p1 = new double[3]; public double[] p2 = new double[3]; public Wheel_info(double radius, double width) { m_radius = radius; m_width = width; p1[0] = -width / 2.0; p1[1] = 0; p1[2] = radius; p2[0] = width / 2.0; p2[1] = 0; p2[2] = radius; } public void rotate(double theta) { double x = Math.Cos(theta) * p1[0] - Math.Sin(theta) * p1[1]; double y = Math.Sin(theta) * p1[0] + Math.Cos(theta) * p1[1]; p1[0] = x; p1[1] = y; x = Math.Cos(theta) * p2[0] - Math.Sin(theta) * p2[1]; y = Math.Sin(theta) * p2[0] + Math.Cos(theta) * p2[1]; p2[0] = x; p2[1] = y; } public void translate(PointF pt) { p1[0] += pt.X; p1[1] += pt.Y; p2[0] += pt.X; p2[1] += pt.Y; } } class ViewData_Source { public vtkPolyData m_cloud_polydata = vtkPolyData.New(); public vtkVertexGlyphFilter m_cloud_glyphFilter = vtkVertexGlyphFilter.New(); public vtkPolyDataMapper m_cloud_mapper = vtkPolyDataMapper.New(); public vtkActor m_cloud_act = vtkActor.New(); vtkLineSource m_ls_lt = vtkLineSource.New(); vtkTubeFilter m_tf_lt = vtkTubeFilter.New(); vtkPolyDataMapper m_dm_lt = vtkPolyDataMapper.New(); public vtkActor m_left_front_wheel_act = vtkActor.New(); vtkLineSource m_ls_rt = vtkLineSource.New(); vtkTubeFilter m_tf_rt = vtkTubeFilter.New(); vtkPolyDataMapper m_dm_rt = vtkPolyDataMapper.New(); public vtkActor m_right_front_wheel_act = vtkActor.New(); vtkLineSource m_ls_lb = vtkLineSource.New(); vtkTubeFilter m_tf_lb = vtkTubeFilter.New(); vtkPolyDataMapper m_dm_lb = vtkPolyDataMapper.New(); public vtkActor m_left_rear_wheel_act = vtkActor.New(); vtkLineSource m_ls_rb = vtkLineSource.New(); vtkTubeFilter m_tf_rb = vtkTubeFilter.New(); vtkPolyDataMapper m_dm_rb = vtkPolyDataMapper.New(); public vtkActor m_right_rear_wheel_act = vtkActor.New(); vtkProperty m_whell_pp = vtkProperty.New(); PointF rotate_point(PointF pt, double theta) { double x = Math.Cos(theta) * pt.X - Math.Sin(theta) * pt.Y; double y = Math.Sin(theta) * pt.X + Math.Cos(theta) * pt.Y; return new PointF((float)x, (float)y); } public void update_car_info(Car_info car_info) { if (car_info.correct == false) { //隐藏车轮 m_left_front_wheel_act.VisibilityOff(); m_right_front_wheel_act.VisibilityOff(); m_left_rear_wheel_act.VisibilityOff(); m_right_rear_wheel_act.VisibilityOff(); return; } double wheel_width = 0.2; double radius = 0.35; Wheel_info lt = new Wheel_info(radius, wheel_width); Wheel_info rt = new Wheel_info(radius, wheel_width); Wheel_info lb = new Wheel_info(radius, wheel_width); Wheel_info rb = new Wheel_info(radius, wheel_width); lt.rotate(car_info.theta + car_info.front_theta); rt.rotate(car_info.theta + car_info.front_theta); lb.rotate(car_info.theta); rb.rotate(car_info.theta); float view_width =(float)(car_info.width - wheel_width); PointF lt_pt = rotate_point(new PointF((float)(-view_width / 2.0), (float)(car_info.wheel_base / 2.0)), car_info.theta); PointF rt_pt = rotate_point(new PointF((float)(view_width / 2.0), (float)(car_info.wheel_base / 2.0)), car_info.theta); PointF lb_pt = rotate_point(new PointF((float)(-view_width / 2.0), (float)(-car_info.wheel_base / 2.0)), car_info.theta); PointF rb_pt = rotate_point(new PointF((float)(view_width / 2.0), (float)(-car_info.wheel_base / 2.0)), car_info.theta); lt.translate(lt_pt); rt.translate(rt_pt); lb.translate(lb_pt); rb.translate(rb_pt); lt.translate(new PointF((float)car_info.cx, (float)car_info.cy)); rt.translate(new PointF((float)car_info.cx, (float)car_info.cy)); lb.translate(new PointF((float)car_info.cx, (float)car_info.cy)); rb.translate(new PointF((float)car_info.cx, (float)car_info.cy)); int line_count = 30; //左前轮 m_ls_lt.SetPoint1(lt.p1[0], lt.p1[1], lt.p1[2]); m_ls_lt.SetPoint2(lt.p2[0], lt.p2[1], lt.p2[2]); m_tf_lt.SetInputConnection(m_ls_lt.GetOutputPort()); m_tf_lt.SetRadius(0.3); m_tf_lt.SetNumberOfSides(line_count); m_tf_lt.CappingOn(); m_dm_lt.SetInputConnection(m_tf_lt.GetOutputPort()); m_left_front_wheel_act.SetMapper(m_dm_lt); //右前轮 m_ls_rt.SetPoint1(rt.p1[0], rt.p1[1], rt.p1[2]); m_ls_rt.SetPoint2(rt.p2[0], rt.p2[1], rt.p2[2]); m_tf_rt.SetInputConnection(m_ls_rt.GetOutputPort()); m_tf_rt.SetRadius(0.3); m_tf_rt.SetNumberOfSides(line_count); m_tf_rt.CappingOn(); m_dm_rt.SetInputConnection(m_tf_rt.GetOutputPort()); m_right_front_wheel_act.SetMapper(m_dm_rt); //左后轮 m_ls_lb.SetPoint1(lb.p1[0], lb.p1[1], lb.p1[2]); m_ls_lb.SetPoint2(lb.p2[0], lb.p2[1], lb.p2[2]); m_tf_lb.SetInputConnection(m_ls_lb.GetOutputPort()); m_tf_lb.SetRadius(0.3); m_tf_lb.SetNumberOfSides(line_count); m_tf_lb.CappingOn(); m_dm_lb.SetInputConnection(m_tf_lb.GetOutputPort()); m_left_rear_wheel_act.SetMapper(m_dm_lb); //右后轮 m_ls_rb.SetPoint1(rb.p1[0], rb.p1[1], rb.p1[2]); m_ls_rb.SetPoint2(rb.p2[0], rb.p2[1], rb.p2[2]); m_tf_rb.SetInputConnection(m_ls_rb.GetOutputPort()); m_tf_rb.SetRadius(0.3); m_tf_rb.SetNumberOfSides(line_count); m_tf_rb.CappingOn(); m_dm_rb.SetInputConnection(m_tf_rb.GetOutputPort()); m_right_rear_wheel_act.SetMapper(m_dm_rb); m_whell_pp.SetOpacity(0.5); m_whell_pp.SetColor(0, 0, 0); m_whell_pp.SetLineWidth(2); m_whell_pp.SetLighting(true); m_whell_pp.SetEdgeColor(0, 0, 0); m_whell_pp.SetEdgeVisibility(1); m_left_front_wheel_act.SetProperty(m_whell_pp); m_right_front_wheel_act.SetProperty(m_whell_pp); m_left_rear_wheel_act.SetProperty(m_whell_pp); m_right_rear_wheel_act.SetProperty(m_whell_pp); //显示车轮 m_left_front_wheel_act.VisibilityOn(); m_right_front_wheel_act.VisibilityOn(); m_left_rear_wheel_act.VisibilityOn(); m_right_rear_wheel_act.VisibilityOn(); } public void update_cloud(vtkPoints points) { m_cloud_polydata.SetPoints(points); //Color m_cloud_glyphFilter.RemoveAllInputs(); m_cloud_glyphFilter.SetInput(m_cloud_polydata); m_cloud_glyphFilter.Update(); // Visualize m_cloud_mapper.RemoveAllInputs(); m_cloud_mapper.SetInputConnection(m_cloud_glyphFilter.GetOutputPort()); m_cloud_act.SetMapper(m_cloud_mapper); m_cloud_act.GetProperty().SetPointSize(2); } public void SetCloudColor(Color color) { m_cloud_act.GetProperty().SetColor(color.R, color.G, color.B); } } object m_lock = new object(); vtkPoints m_points = new vtkPoints(); Car_info m_car_info = new Car_info(); vtkActor m_bound_act = vtkActor.New(); vtkTextActor m_text_act = vtkTextActor.New(); ViewData_Source m_view_data_source1 = new ViewData_Source(); ViewData_Source m_view_data_source2 = new ViewData_Source(); System.Media.SoundPlayer m_sound_player = new System.Media.SoundPlayer(); System.Windows.Forms.Timer m_timerGetTime = new System.Windows.Forms.Timer(); //自适应窗口大小 AutoResizeForm m_auto_resize_form = new AutoResizeForm(); bool m_is_correct = false; bool isClosed = false; Thread m_viewer_ledDisplay_thread; bool ArrowsVisible = false; Arrows arrows = Arrows.eArrows_unknow; public enum Arrows { /// /// 默认 /// eArrows_unknow =-1, /// /// 箭头向左 /// eArrows_left =0, /// /// 箭头向右 /// eArrows_right = 1, /// /// 箭头向上 /// eArrows_top = 2, /// /// 箭头向下 /// eArrows_down = 3, /// /// 箭头向左上 /// eArrows_upperleft = 4, /// /// 箭头向右上 /// eArrows_upperright = 5, /// /// 箭头向左下 /// eArrows_lowerleft = 6, /// /// 箭头向右下 /// eArrows_lowerright = 7, }; public void isCorrect(bool t_is_correct) { m_is_correct = t_is_correct; } /// /// 设置箭头 /// /// public void SetArrows(Arrows t_arrows) { arrows = t_arrows; } public void isArrowsVisible(bool visible) { ArrowsVisible = visible; } public void set_tip_car_label(string str) { this.Invoke(new Action(() => { this.tip_car_label.Text = str; })); } public void set_car_data_label(string str) { this.Invoke(new Action(() => { this.Tip_Label.Text = str; })); } public void set_tip_label(string str) { this.Invoke(new Action(() => { this.Statu_Label.Text = str; })); } public void SetCloud(vtkPoints points) { lock (m_lock) { m_points.DeepCopy(points); } } public void SetCloudColor(Color color) { lock (m_lock) { m_view_data_source1.SetCloudColor(color); m_view_data_source2.SetCloudColor(color); } } public void SetCarInfo(Car_info car_info) { lock (m_lock) { m_car_info = car_info; } } public Color GetColor(float percentage) { var red = (percentage > 50 ? 1 - 2 * (percentage - 50) / 100.0 : 1.0) * 255; var green = (percentage > 50 ? 1.0 : 2 * percentage / 100.0) * 255; var blue = 0.0; Color result = Color.FromArgb((int)red, (int)green, (int)blue); return result; } public FormVtk() { InitializeComponent(); m_viewer_ledDisplay_thread = new Thread(viewer_ledDisplay); } public void viewer_ledDisplay() { while (!isClosed) { try { this.Invoke(new Action(() => { if (m_is_correct) { Statu_Label.Text = "车已停好!"; Statu_Label.ForeColor = GetColor(100); show_correct_tip_image(); SetCloudColor(GetColor(100)); } else { Statu_Label.ForeColor = GetColor(0); show_error_tip_image(); SetCloudColor(GetColor(0)); } if (ArrowsVisible) { switch (arrows) { case Arrows.eArrows_top: { this.top_pictureBox.Image = Image.FromFile(System.AppDomain.CurrentDomain.BaseDirectory + "/Resource/arrows/" + "jiantou_xiangshang.png"); top_pictureBox.Visible = true; down_pictureBox.Visible = false; left_pictureBox.Visible = false; right_pictureBox.Visible = false; upperleft_pictureBox.Visible = false; upperright_pictureBox.Visible = false; lowerleft_pictureBox.Visible = false; lowerright_pictureBox.Visible = false; } break; case Arrows.eArrows_down: { this.down_pictureBox.Image = Image.FromFile(System.AppDomain.CurrentDomain.BaseDirectory + "/Resource/arrows/" + "jiantou_xiangxia.png"); top_pictureBox.Visible = false; down_pictureBox.Visible = true; left_pictureBox.Visible = false; right_pictureBox.Visible = false; upperleft_pictureBox.Visible = false; upperright_pictureBox.Visible = false; lowerleft_pictureBox.Visible = false; lowerright_pictureBox.Visible = false; } break; case Arrows.eArrows_left: { this.left_pictureBox.Image = Image.FromFile(System.AppDomain.CurrentDomain.BaseDirectory + "/Resource/arrows/" + "jiantou_xiangzuo.png"); top_pictureBox.Visible = false; down_pictureBox.Visible = false; left_pictureBox.Visible = true; right_pictureBox.Visible = false; upperleft_pictureBox.Visible = false; upperright_pictureBox.Visible = false; lowerleft_pictureBox.Visible = false; lowerright_pictureBox.Visible = false; } break; case Arrows.eArrows_right: { this.right_pictureBox.Image = Image.FromFile(System.AppDomain.CurrentDomain.BaseDirectory + "/Resource/arrows/" + "jiantou_xiangyou.png"); top_pictureBox.Visible = false; down_pictureBox.Visible = false; left_pictureBox.Visible = false; right_pictureBox.Visible = true; upperleft_pictureBox.Visible = false; upperright_pictureBox.Visible = false; lowerleft_pictureBox.Visible = false; lowerright_pictureBox.Visible = false; } break; case Arrows.eArrows_upperleft: { this.upperleft_pictureBox.Image = Image.FromFile(System.AppDomain.CurrentDomain.BaseDirectory + "/Resource/arrows/" + "jiantou_zuoshang.png"); top_pictureBox.Visible = false; down_pictureBox.Visible = false; left_pictureBox.Visible = false; right_pictureBox.Visible = false; upperleft_pictureBox.Visible = true; upperright_pictureBox.Visible = false; lowerleft_pictureBox.Visible = false; lowerright_pictureBox.Visible = false; } break; case Arrows.eArrows_upperright: { this.upperright_pictureBox.Image = Image.FromFile(System.AppDomain.CurrentDomain.BaseDirectory + "/Resource/arrows/" + "jiantou_youshang.png"); top_pictureBox.Visible = false; down_pictureBox.Visible = false; left_pictureBox.Visible = false; right_pictureBox.Visible = false; upperleft_pictureBox.Visible = false; upperright_pictureBox.Visible = true; lowerleft_pictureBox.Visible = false; lowerright_pictureBox.Visible = false; } break; case Arrows.eArrows_lowerleft: { this.lowerleft_pictureBox.Image = Image.FromFile(System.AppDomain.CurrentDomain.BaseDirectory + "/Resource/arrows/" + "jiantou_zuoxia.png"); top_pictureBox.Visible = false; down_pictureBox.Visible = false; left_pictureBox.Visible = false; right_pictureBox.Visible = false; upperleft_pictureBox.Visible = false; upperright_pictureBox.Visible = false; lowerleft_pictureBox.Visible = true; lowerright_pictureBox.Visible = false; } break; case Arrows.eArrows_lowerright: { this.lowerright_pictureBox.Image = Image.FromFile(System.AppDomain.CurrentDomain.BaseDirectory + "/Resource/arrows/" + "jiantou_youxia.png"); top_pictureBox.Visible = false; down_pictureBox.Visible = false; left_pictureBox.Visible = false; right_pictureBox.Visible = false; upperleft_pictureBox.Visible = false; upperright_pictureBox.Visible = false; lowerleft_pictureBox.Visible = false; lowerright_pictureBox.Visible = true; } break; } } else { top_pictureBox.Visible = false; down_pictureBox.Visible = false; left_pictureBox.Visible = false; right_pictureBox.Visible = false; upperleft_pictureBox.Visible = false; upperright_pictureBox.Visible = false; lowerleft_pictureBox.Visible = false; lowerright_pictureBox.Visible = false; } })); } catch { } Thread.Sleep(100); } } void viewer_car(Car_info car_info) { try { vtkRenderer renderer = renderWindowControl1.RenderWindow.GetRenderers().GetFirstRenderer(); renderer.RemoveActor(m_view_data_source1.m_left_front_wheel_act); renderer.RemoveActor(m_view_data_source1.m_right_front_wheel_act); renderer.RemoveActor(m_view_data_source1.m_left_rear_wheel_act); renderer.RemoveActor(m_view_data_source1.m_right_rear_wheel_act); m_view_data_source1.update_car_info(car_info); m_view_data_source2.update_car_info(car_info); renderer.AddActor(m_view_data_source1.m_left_front_wheel_act); renderer.AddActor(m_view_data_source1.m_right_front_wheel_act); renderer.AddActor(m_view_data_source1.m_left_rear_wheel_act); renderer.AddActor(m_view_data_source1.m_right_rear_wheel_act); renderWindowControl1.RenderWindow.Render(); } catch (Exception e) { } } public void SetBound(double minx, double maxx, double miny, double maxy, double minz, double maxz) { vtkCubeSource cube = vtkCubeSource.New(); cube.SetBounds(minx, maxx, miny, maxy, minz, maxz); vtkPolyDataMapper mapper = vtkPolyDataMapper.New(); mapper.SetInputConnection(cube.GetOutputPort()); m_bound_act.SetMapper(mapper); vtkProperty pp = vtkProperty.New(); pp.SetEdgeColor(1, 0, 0); pp.SetEdgeVisibility(1); pp.SetColor(1, 1, 1); pp.SetLineWidth(2); pp.SetOpacity(0.2); m_bound_act.SetProperty(pp); renderWindowControl1.Refresh(); } private void viewer_cloud(vtkPoints points) { if (points.GetReferenceCount() == 0) return; try { vtkRenderer renderer = renderWindowControl1.RenderWindow.GetRenderers().GetFirstRenderer(); renderer.RemoveActor(m_view_data_source1.m_cloud_act); m_view_data_source1.update_cloud(points); m_view_data_source2.update_cloud(points); renderer.AddActor(m_view_data_source1.m_cloud_act); renderWindowControl1.RenderWindow.Render(); } catch (Exception e) { } } private void renderWindowControl1_Load(object sender, EventArgs e) { vtkRenderer renderer = renderWindowControl1.RenderWindow.GetRenderers().GetFirstRenderer(); vtkInteractorStyleTrackballCamera style = vtkInteractorStyleTrackballCamera.New(); //移动摄像头 vtkAxesActor axesActor = vtkAxesActor.New(); // 创建“坐标”角色 axesActor.SetScale(1.0, 1.0, 1.0); axesActor.AxisLabelsOff(); renderer.AddActor(axesActor); // 渲染坐标角色 renderer.AddActor(m_view_data_source1.m_cloud_act); renderer.AddActor(m_view_data_source1.m_left_front_wheel_act); renderer.AddActor(m_view_data_source1.m_right_front_wheel_act); renderer.AddActor(m_view_data_source1.m_left_rear_wheel_act); renderer.AddActor(m_view_data_source1.m_right_rear_wheel_act); renderer.AddActor(m_text_act); renderer.AddActor(m_bound_act); renderer.SetBackground(1, 1, 1); renderer.ResetCamera(); renderer.GetActiveCamera().Zoom(1.3); vtkRenderWindowInteractor renderWindowInteractor = renderWindowControl1.RenderWindow.MakeRenderWindowInteractor(); renderWindowInteractor.SetInteractorStyle(style); //交互模式 重要! renderWindowInteractor.Initialize(); //renderWindowControl1.Enabled = false; return; // Create a simple sphere. A pipeline is created. /*vtkSphereSource sphere = vtkSphereSource.New(); sphere.SetThetaResolution(8); sphere.SetPhiResolution(16); vtkShrinkPolyData shrink = vtkShrinkPolyData.New(); shrink.SetInputConnection(sphere.GetOutputPort()); shrink.SetShrinkFactor(0.9); vtkPolyDataMapper mapper = vtkPolyDataMapper.New(); mapper.SetInputConnection(shrink.GetOutputPort()); // The actor links the data pipeline to the rendering subsystem vtkActor actor = vtkActor.New(); actor.SetMapper(mapper); actor.GetProperty().SetColor(1, 0, 0); // Create components of the rendering subsystem // vtkRenderer ren1 = renderWindowControl1.RenderWindow.GetRenderers().GetFirstRenderer(); vtkRenderWindow renWin = renderWindowControl1.RenderWindow; // Add the actors to the renderer, set the window size // ren1.AddViewProp(actor); renWin.SetSize(250, 250); renWin.Render(); vtkCamera camera = ren1.GetActiveCamera(); camera.Zoom(1.5);*/ } private void renderWindowControl1_Paint(object sender, PaintEventArgs e) { //viewer_cloud(); } //private void set_camera_Click(object sender, EventArgs e) //{ // double x = double.Parse(xbox.Text); // double y = double.Parse(ybox.Text); // double z = double.Parse(zbox.Text); // double dx = double.Parse(dxbox.Text); // double dy = double.Parse(dybox.Text); // double dz = double.Parse(dzbox.Text); // vtkCamera camera = new vtkCamera(); //-4.1, 0.5,2.0, 0.35,0 0.9 // camera.SetPosition(x, y, z); // camera.SetViewUp(dx, dy, dz); // vtkRenderer renderer = renderWindowControl2.RenderWindow.GetRenderers().GetFirstRenderer(); // renderer.SetActiveCamera(camera); // renderWindowControl2.Refresh(); //} //private void getdirection_Click(object sender, EventArgs e) //{ // vtkRenderer renderer = renderWindowControl2.RenderWindow.GetRenderers().GetFirstRenderer(); // double[] d = renderer.GetActiveCamera().GetViewUp(); // double[] p = renderer.GetActiveCamera().GetPosition(); // xbox.Text = p[0].ToString(); // ybox.Text = p[1].ToString(); // zbox.Text = p[2].ToString(); // dxbox.Text = d[0].ToString(); // dybox.Text = d[1].ToString(); // dzbox.Text = d[2].ToString(); //} //private void btn_car_Click(object sender, EventArgs e) //{ // Car_info car_info = new Car_info(); // car_info.correct = true; // car_info.cx = double.Parse(cx_box.Text); // car_info.cy = double.Parse(cy_box.Text); // car_info.theta = double.Parse(theta_box.Text) / 180.0 * Math.PI; // car_info.wheel_base = double.Parse(wheel_base_box.Text); // car_info.width = double.Parse(width_box.Text); // car_info.front_theta = double.Parse(front_theta_box.Text) / 180.0 * Math.PI; // viewer_car(car_info); //} private void button_play_sound_Click(object sender, EventArgs e) { //UILocalize.InfoTitle = "提示"; //UILocalize.SuccessTitle = "正确"; //UILocalize.WarningTitle = "警告"; //UILocalize.ErrorTitle = "错误"; //UILocalize.AskTitle = "提示"; //UILocalize.InputTitle = "输入"; //UILocalize.CloseAll = "全部关闭"; //UILocalize.OK = "确定"; //UILocalize.Cancel = "取消"; //UILocalize.GridNoData = "[ 无数据 ]"; //UILocalize.GridDataLoading = "数据加载中 ......"; //UILocalize.GridDataSourceException = "数据源必须为DataTable或者List"; m_sound_player.SoundLocation = "C:\\Users\\Administrator\\Desktop\\文件\\kldykxq.wav"; m_sound_player.Load(); m_sound_player.PlayLooping(); } private void button_stop_sound_Click(object sender, EventArgs e) { m_sound_player.Stop(); } public void HandleTime(Object myObject, EventArgs myEventArgs) { lock (m_lock) { viewer_cloud(m_points); viewer_car(m_car_info); } } private void FormVtk_Load(object sender, EventArgs e) { //设置定时器属性 m_timerGetTime.Tick += new EventHandler(HandleTime); m_timerGetTime.Interval = 50; m_timerGetTime.Enabled = true; //开启定时器 m_timerGetTime.Start(); m_viewer_ledDisplay_thread.Start(); //设置最大化 //this.WindowState = FormWindowState.Maximized; var screens = Screen.AllScreens; m_auto_resize_form.controllInitializeSize(this); /*//若当前只有一块显示器 if (Screen.AllScreens.Length < 2) return; //0主显示器(系统默认,可设置哪块显示器为主显示器)1扩展显示器 this.Location = new Point(screens[1].Bounds.Left, screens[1].Bounds.Top); this.FormBorderStyle = FormBorderStyle.None; //设置窗体为无边框样式 this.WindowState = FormWindowState.Maximized; //最大化窗体*/ } private void FormVtk_FormClosing(object sender, FormClosingEventArgs e) { m_timerGetTime.Stop(); isClosed = true; } public void FormVtkUninit() { isClosed = true; m_viewer_ledDisplay_thread.Abort(); m_timerGetTime.Stop(); } private void FormVtk_SizeChanged(object sender, EventArgs e) { m_auto_resize_form.controlAutoSize(this); } public void show_correct_tip_image() { this.results_pictureBox.Image = Image.FromFile(System.AppDomain.CurrentDomain.BaseDirectory + "/Resource/tipimage/" + "0.ico"); } public void show_error_tip_image() { this.results_pictureBox.Image = Image.FromFile(System.AppDomain.CurrentDomain.BaseDirectory + "/Resource/tipimage/" + "1.ico"); } } }