diff --git a/cVMS.NET_CS/HMI/MainDisplay/DispCtrl.cs b/cVMS.NET_CS/HMI/MainDisplay/DispCtrl.cs index 3c7614a..f8e5da2 100644 --- a/cVMS.NET_CS/HMI/MainDisplay/DispCtrl.cs +++ b/cVMS.NET_CS/HMI/MainDisplay/DispCtrl.cs @@ -51,7 +51,7 @@ namespace vmsnet.HMI { public bool MonitorOn { get; set; } public CMouseinfo Mouseinfo; //마우스위치정보 - + //그룹데이터 public CGROUP[] GROUPS = new CGROUP[0]; public CWINDOW WINDOW = new CWINDOW(); @@ -1543,7 +1543,7 @@ namespace vmsnet.HMI { using (var ifont = new Font(this.font_header, FontStyle.Bold)) { - String nbstr = "▣ NULL BALANCE ▣"; + String nbstr = $"▣ {grp.이름} - NULL BALANCE ▣"; nbstr += "\n\n▶L:" + grp._null_valueL.ToString("#0.00") + "v"; nbstr += ",R:" + grp._null_valueR.ToString("#0.00") + "v"; nbstr += " ▶DEV(R-L):" + (grp._null_valueR - grp._null_valueL).ToString("#0.00") + "v"; @@ -1653,7 +1653,7 @@ namespace vmsnet.HMI this.WINDOW._itemheight = WindowRect.Height / this.WINDOW.RowCount; } - + if (this.GROUPS.Length < 1) { g.DrawString("NO Group", this.Font, Brushes.Red, WindowRect.Left, WindowRect.Top); @@ -1672,19 +1672,35 @@ namespace vmsnet.HMI var 열번호 = grp.열번호; var 줄번호 = grp.줄번호; + //전체화면이 아닌경우라면 지정된 그룹만 표시한다 if (FullScreen == false) { - if (ShowIndex < 0 || ShowIndex > this.GROUPS.GetUpperBound(0)) visible = false; + if (ShowIndex < 0 || ShowIndex > this.GROUPS.GetUpperBound(0)) visible = false; //인덱스오류체크 else visible = (idx == ShowIndex); 열번호 = 0; 줄번호 = 0; } + + + + //마우스를 올린경우 추가정보 표시 if (grp.Showinfo) infogrp = grp; else DrawGroup(g, grp, new Point(0, 0), new SizeF(WINDOW.ITEMWIDTH, WINDOW.ITEMHEIGHT), WindowRect, 열번호, 줄번호, false, visible); idx += 1; } + if (infogrp != null) - DrawGroup(g, infogrp, new Point(0, 0), new SizeF(WINDOW.ITEMWIDTH, WINDOW.ITEMHEIGHT), WindowRect, infogrp.열번호, infogrp.줄번호, false, true); + { + var colnum = infogrp.열번호; + var rownum = infogrp.줄번호; + if (FullScreen == false) + { + colnum = 0; + rownum = 0; + } + DrawGroup(g, infogrp, new Point(0, 0), new SizeF(WINDOW.ITEMWIDTH, WINDOW.ITEMHEIGHT), WindowRect, colnum, rownum, false, true); + + } //end group //} @@ -1879,6 +1895,9 @@ namespace vmsnet.HMI private int Check_GroupHeader(MouseEventArgs e, Boolean resetshowinfo = false) { if (this.GROUPS == null) return -1; + + + for (int i = 0; i < this.GROUPS.Length; i++) { RectangleF rect = this.GROUPS[i].Rect_Header; @@ -1887,7 +1906,16 @@ namespace vmsnet.HMI //현재위치가 해당 Rectagle 안이라면 속해있다. if (e.X > rect.X && e.X < rect.X + rect.Width) { - if (e.Y > rect.Y && e.Y < rect.Y + rect.Height) return i; + if (e.Y > rect.Y && e.Y < rect.Y + rect.Height) + { + //전체화면이 아닌경우에는 선택된 그룹번호를 반환 + if (this.FullScreen == false) + { + if (this.ShowIndex < 0 || this.ShowIndex >= this.GroupCount) return -1; + else return this.ShowIndex; + } + else return i; + } } } return -1;