89 lines
		
	
	
		
			2.9 KiB
		
	
	
	
		
			C#
		
	
	
	
	
	
			
		
		
	
	
			89 lines
		
	
	
		
			2.9 KiB
		
	
	
	
		
			C#
		
	
	
	
	
	
| using System;
 | |
| using System.Collections.Generic;
 | |
| using System.ComponentModel;
 | |
| using System.Data;
 | |
| using System.Drawing;
 | |
| using System.Linq;
 | |
| using System.Text;
 | |
| using System.Windows.Forms;
 | |
| 
 | |
| namespace UIControl
 | |
| {
 | |
|     public partial class CtlSensor : CtlBase
 | |
|     {
 | |
| 
 | |
|         [DesignerSerializationVisibility(DesignerSerializationVisibility.Content)]
 | |
|         public PinInfo arPin { get { return PinList[0]; } set { PinList[0] = value; } }
 | |
|       
 | |
|         Font font_ = new Font("Malgun Gothic", 10);
 | |
| 
 | |
|         [Browsable(true)]
 | |
|         public new Font Font { get { return font_; } set { font_ = value; this.Invalidate(); } }
 | |
|       
 | |
|         public Boolean RectShape { get; set; }
 | |
|         public Color ColorOn { get; set; }
 | |
|         public Color ColorOff { get; set; }
 | |
|        
 | |
|         public CtlSensor()
 | |
|         {
 | |
|             InitializeComponent();
 | |
| 
 | |
|             SetPinCount(1);
 | |
|           
 | |
|             //this.MaximumSize = new Size(80, 80);
 | |
|             this.MinimumSize = new Size(4, 4);
 | |
|             this.ColorOn = Color.Lime;
 | |
|             this.ColorOff = Color.DimGray;
 | |
|             //if (this.Font == null) this.Font = new Font("Malgun Gothic", 10);
 | |
|             //if (this.Text == null) this.Text = string.Empty;
 | |
|           
 | |
|         }
 | |
| 
 | |
|         public override void MakeRect()
 | |
|         {
 | |
|             
 | |
|         }
 | |
|         public override void UpdateValue()
 | |
|         {
 | |
| 
 | |
|         }
 | |
|         protected override void OnPaint(PaintEventArgs pe)
 | |
|         {
 | |
|             base.OnPaint(pe);
 | |
|             pe.Graphics.DrawRectangle(Pens.Gray, DisplayRectangle.Left, DisplayRectangle.Top, DisplayRectangle.Width - 1, DisplayRectangle.Height - 1);
 | |
| 
 | |
| 
 | |
|             var baseRect = new Rectangle(DisplayRectangle.Left + Padding.Left,
 | |
|                 DisplayRectangle.Top + Padding.Top,
 | |
|                 DisplayRectangle.Width - Padding.Left - Padding.Right,
 | |
|                 DisplayRectangle.Height - Padding.Top - Padding.Bottom);
 | |
| 
 | |
| 
 | |
|             var rect = new Rectangle(baseRect.Left + 1, baseRect.Top + 1, baseRect.Width - 2, baseRect.Height - 2);
 | |
| 
 | |
|             if (RectShape)
 | |
|             {
 | |
|                 if (arPin.Value) pe.Graphics.FillRectangle(new SolidBrush(ColorOn), rect);
 | |
|                 else pe.Graphics.FillRectangle(new SolidBrush(ColorOff), rect);
 | |
|                 pe.Graphics.DrawRectangle(Pens.Black, rect);
 | |
|             }
 | |
|             else
 | |
|             {
 | |
|                 if (arPin.Value) pe.Graphics.FillEllipse(new SolidBrush(ColorOn), rect);
 | |
|                 else pe.Graphics.FillEllipse(new SolidBrush(ColorOff), rect);
 | |
|                 pe.Graphics.DrawEllipse(Pens.Black, rect);
 | |
|             }
 | |
| 
 | |
| 
 | |
|             if (string.IsNullOrEmpty(Text) == false)
 | |
|             {
 | |
|                 pe.Graphics.DrawString(Text,
 | |
|                     this.Font,
 | |
|                     Brushes.Black,
 | |
|                     baseRect,
 | |
|                     new StringFormat { Alignment = StringAlignment.Center, LineAlignment = StringAlignment.Center });
 | |
|             }
 | |
|         }
 | |
|     }
 | |
| }
 | 
