SSISO Community

갤러리정

Format And Parse Image

/*
User  Interfaces  in  C#:  Windows  Forms  and  Custom  Controls
by  Matthew  MacDonald

Publisher:  Apress
ISBN:  1590590457
*/
using  System;
using  System.Drawing;
using  System.Collections;
using  System.ComponentModel;
using  System.Windows.Forms;
using  System.Data;

namespace  FormatAndParse
{
    ///  <summary>
    ///  Summary  description  for  FormatAndParseImage.
    ///  </summary>
    public  class  FormatAndParseImage  :  System.Windows.Forms.Form
    {
        internal  System.Windows.Forms.GroupBox  GroupBox1;
        internal  System.Windows.Forms.PictureBox  picProduct;
        internal  System.Windows.Forms.Label  Label1;
        internal  System.Windows.Forms.Label  lblStatus;
        internal  System.Windows.Forms.ComboBox  cboModelName;
        ///  <summary>
        ///  Required  designer  variable.
        ///  </summary>
        private  System.ComponentModel.Container  components  =  null;

        public  FormatAndParseImage()
        {
            //
            //  Required  for  Windows  Form  Designer  support
            //
            InitializeComponent();

            //
            //  TODO:  Add  any  constructor  code  after  InitializeComponent  call
            //
        }

        ///  <summary>
        ///  Clean  up  any  resources  being  used.
        ///  </summary>
        protected  override  void  Dispose(  bool  disposing  )
        {
            if(  disposing  )
            {
                if(components  !=  null)
                {
                    components.Dispose();
                }
            }
            base.Dispose(  disposing  );
        }

        #region  Windows  Form  Designer  generated  code
        ///  <summary>
        ///  Required  method  for  Designer  support  -  do  not  modify
        ///  the  contents  of  this  method  with  the  code  editor.
        ///  </summary>
        private  void  InitializeComponent()
        {
            this.GroupBox1  =  new  System.Windows.Forms.GroupBox();
            this.picProduct  =  new  System.Windows.Forms.PictureBox();
            this.Label1  =  new  System.Windows.Forms.Label();
            this.lblStatus  =  new  System.Windows.Forms.Label();
            this.cboModelName  =  new  System.Windows.Forms.ComboBox();
            this.GroupBox1.SuspendLayout();
            this.SuspendLayout();
            //  
            //  GroupBox1
            //  
            this.GroupBox1.Controls.AddRange(new  System.Windows.Forms.Control[]  {
                                                                                    this.picProduct});
            this.GroupBox1.FlatStyle  =  System.Windows.Forms.FlatStyle.System;
            this.GroupBox1.Location  =  new  System.Drawing.Point(12,  52);
            this.GroupBox1.Name  =  "GroupBox1";
            this.GroupBox1.Size  =  new  System.Drawing.Size(352,  128);
            this.GroupBox1.TabIndex  =  22;
            this.GroupBox1.TabStop  =  false;
            this.GroupBox1.Text  =  "Display  Value  for  ProductImage";
            //  
            //  picProduct
            //  
            this.picProduct.Location  =  new  System.Drawing.Point(16,  24);
            this.picProduct.Name  =  "picProduct";
            this.picProduct.Size  =  new  System.Drawing.Size(128,  88);
            this.picProduct.TabIndex  =  18;
            this.picProduct.TabStop  =  false;
            //  
            //  Label1
            //  
            this.Label1.Location  =  new  System.Drawing.Point(20,  20);
            this.Label1.Name  =  "Label1";
            this.Label1.Size  =  new  System.Drawing.Size(64,  16);
            this.Label1.TabIndex  =  21;
            this.Label1.Text  =  "Product:";
            //  
            //  lblStatus
            //  
            this.lblStatus.BorderStyle  =  System.Windows.Forms.BorderStyle.Fixed3D;
            this.lblStatus.Dock  =  System.Windows.Forms.DockStyle.Bottom;
            this.lblStatus.FlatStyle  =  System.Windows.Forms.FlatStyle.System;
            this.lblStatus.ForeColor  =  System.Drawing.SystemColors.HotTrack;
            this.lblStatus.Location  =  new  System.Drawing.Point(0,  218);
            this.lblStatus.Name  =  "lblStatus";
            this.lblStatus.Size  =  new  System.Drawing.Size(388,  24);
            this.lblStatus.TabIndex  =  20;
            //  
            //  cboModelName
            //  
            this.cboModelName.DropDownStyle  =  System.Windows.Forms.ComboBoxStyle.DropDownList;
            this.cboModelName.Location  =  new  System.Drawing.Point(84,  16);
            this.cboModelName.Name  =  "cboModelName";
            this.cboModelName.Size  =  new  System.Drawing.Size(248,  21);
            this.cboModelName.TabIndex  =  19;
            //  
            //  FormatAndParseImage
            //  
            this.AutoScaleBaseSize  =  new  System.Drawing.Size(5,  14);
            this.ClientSize  =  new  System.Drawing.Size(388,  242);
            this.Controls.AddRange(new  System.Windows.Forms.Control[]  {
                                                                            this.GroupBox1,
                                                                            this.Label1,
                                                                            this.lblStatus,
                                                                            this.cboModelName});
            this.Font  =  new  System.Drawing.Font("Tahoma",  8.25F,  System.Drawing.FontStyle.Regular,  System.Drawing.GraphicsUnit.Point,  ((System.Byte)(0)));
            this.Name  =  "FormatAndParseImage";
            this.Text  =  "FormatAndParseImage";
            this.Load  +=  new  System.EventHandler(this.FormatAndParseImage_Load);
            this.GroupBox1.ResumeLayout(false);
            this.ResumeLayout(false);

        }
        #endregion

        private  void  FormatAndParseImage_Load(object  sender,  System.EventArgs  e)
        {
            DataSet  dsStore  =  new  DataSet();
            dsStore.ReadXmlSchema(Application.StartupPath  +  "\\store.xsd");
            dsStore.ReadXml(Application.StartupPath  +  "\\store.xml");
            
            cboModelName.DataSource  =  dsStore.Tables["Products"];
            cboModelName.DisplayMember  =  "ModelName";

            Binding  pictureBinding  =  new  Binding("Image",  dsStore.Tables["Products"],  
                "ProductImage");
            pictureBinding.Format  +=  new  ConvertEventHandler(FileToImage);
            pictureBinding.Parse  +=  new  ConvertEventHandler(ImageToFile);

            picProduct.DataBindings.Add(pictureBinding);

        }

        private  void  FileToImage(object  sender,  ConvertEventArgs  e)
        {
            if  (e.DesiredType  ==  typeof(Image))
            {
                //  Store  the  filename.
                picProduct.Tag  =  e.Value;

                //  Look  up  the  corresponding  file,  and  create  an  Image  object.
                e.Value  =  Image.FromFile(Application.StartupPath  +  "\\"  +  e.Value);
            }
        }

        private  void  ImageToFile(object  sender,  ConvertEventArgs  e)
        {
            if  (e.DesiredType  ==  typeof(string))
            {
                //  Substitute  the  filename.
                e.Value  =  picProduct.Tag;
            }
        }
        [STAThread]
        static  void  Main()  
        {
            Application.Run(new  FormatAndParseImage());
        }    
    }
}

514 view

4.0 stars