using System; using System.Drawing; using System.IO; using System.Reflection; using System.Windows.Forms; namespace Mesnac.Controls.Feeding { /// /// 岔道阀(入) /// [ToolboxBitmap( typeof( SwitchInValve ) , "ICONS.SwitchValve.bmp" )]//新添加的代码 public partial class SwitchInValve : FeedingControl { bool bNewPic = false; string _statusName; public string StatusName { get { return _statusName; } set { _statusName = value; } } public enum Statuses { csBSide = 0, csASide = 1, csAlarm = 2 } Statuses _status; string[,] sImages; public enum Types { ctDown = 0 , ctUp = 1 } Types _type; public SwitchInValve() : base() { InitializeComponent(); Init(); ReloadStream(); } protected override void Init() { base.Init(); _imageStream = null; sImages = new string[ 2 , 3 ]; sImages[ 0 , 0 ] = "Mesnac.Controls.Feeding.Resources.cdf.cdf101.png";// sImages[ 0 , 1 ] = "Mesnac.Controls.Feeding.Resources.cdf.cdf100.png";// sImages[ 0 , 2 ] = "Mesnac.Controls.Feeding.Resources.cdf.cdf102.gif";// sImages[ 1 , 0 ] = "Mesnac.Controls.Feeding.Resources.cdf.cdf111.png";// sImages[ 1 , 1 ] = "Mesnac.Controls.Feeding.Resources.cdf.cdf110.png";// sImages[ 1 , 2 ] = "Mesnac.Controls.Feeding.Resources.cdf.cdf112.gif";// _status = Statuses.csASide; _type = Types.ctDown; } private void ReloadStream() { //CloseStream(); int nIndex = (int)_type; _imageStream = _assembly.GetManifestResourceStream( sImages[ (int)_type , (int)_status ] ); } public Types Type { get { return _type; } set { if ( bFirstCreated == true ) { bFirstCreated = false; } if ( _type != value ) { if ( this.DesignMode == true ) { bNewPic = true; } } _type = value; this.Refresh(); } } public Statuses Status { get { return _status; } set { if ( bFirstCreated == true ) { bFirstCreated = false; } bool flag = false; //if (_status != value &&(this.Size.Width != 150 || this.Size.Height != 150) ) if ( _status != value ) { flag = true; if ( this.DesignMode == true ) { bNewPic = true; } } if ( (int)value < 0 ) { _status = (Statuses)0; } else if ( (int)value > 2 ) { _status = (Statuses)2; } else { _status = value; } if (flag) { ReloadStream(); this.Refresh(); } } } protected override void OnPaint( PaintEventArgs e ) { if ( _imageStream != null ) { Graphics g = e.Graphics; Image img = Image.FromStream( _imageStream ); if ( _type == Types.ctDown ) { //img.RotateFlip(RotateFlipType. } else if ( _type == Types.ctUp ) { img.RotateFlip( RotateFlipType.RotateNoneFlipY ); } if ( bNewPic == true ) { this.Size = img.Size; bNewPic = false; } g.DrawImage( img , 0 , 0 , this.Width , this.Height ); } } private void SwitchInValve_Load( object sender , EventArgs e ) { if ( bFirstCreated == true && this.DesignMode == true ) { bNewPic = true; bFirstCreated = false; } } } }