www.doronamir.com

E-mail: doron@doronamir.com

 

 

 

 GDI+:

בתכנית הנ"ל אנו משתמשים במקדם השקיפות אלפה (A), ניתן לקבל ערך מספרי ולהמירו לצבע ע"י Color.FromArgb(A,Color.Green)

ושימוש במתודה Invalidate בכדי לרענן את הטופס בכל לחיצה על הפקד אשר מעלה את ערך מקדם השקיפות ובכך הופך את הריבוע הפנימי לפחות שקוף , ערך מקסימלי עבור כל צבע (ארגומנט עבור FromArgb)כולל שקיפות הינו 255 לכן בקוד זה אנו משתמשים בבלוק Try אשר במקרה ומקדם השקיפות יעלה על ערך זו נעלה Exception  כולל הודעת שגיאה ואיפוס המשתנה.

                

 

using System;

using System.Drawing;

using System.Windows.Forms;

 

namespace DoronAmir4

{

    public class MyForm:Form

    {

        private System.Windows.Forms.Button button1;

   

        public MyForm()

        {

            InitializeComponent();

        }

        private void InitializeComponent()

        {

            this.button1 = new System.Windows.Forms.Button();

            this.SuspendLayout();

            //

            // button1

            //

            this.button1.BackColor = System.Drawing.SystemColors.ControlLightLight;

            this.button1.Location = new System.Drawing.Point(64, 176);

            this.button1.Name = "button1";

            this.button1.Size = new System.Drawing.Size(75, 32);

            this.button1.TabIndex = 0;

            this.button1.Text = "Alpha";

            this.button1.Click += new System.EventHandler(this.button1_Click);

            //

            // MyForm

            //

            this.AutoScaleBaseSize = new System.Drawing.Size(5, 13);

            this.BackColor = System.Drawing.SystemColors.ControlDarkDark;

            this.ClientSize = new System.Drawing.Size(202, 216);

            this.Controls.AddRange(new System.Windows.Forms.Control[] {

                                                                          this.button1});

            this.FormBorderStyle = System.Windows.Forms.FormBorderStyle.FixedToolWindow;

            this.Name = "MyForm";

            this.Text = "www.doronamir.com";

            this.Load += new System.EventHandler(this.MyForm_Load);

            this.ResumeLayout(false);

 

        }

    int A=0;//מקדם שקיפות

        override protected void OnPaint(PaintEventArgs e)

        {

            try

            {

                Brush YellowBrush = new SolidBrush(Color.Yellow);

                Brush GreenBrush= new SolidBrush(Color.FromArgb(A,Color.Green));

                Graphics Area = e.Graphics;//בניית מצביע אחר עבור המשטח - נוחות

                Area.FillRectangle(YellowBrush,30,20,150,150);

                Area.FillRectangle(GreenBrush,80,70,50,50);

            }

            catch(Exception Err)

            {

            //ערך השקיפות המקסימלי הינו 255

            MessageBox.Show(Err.Message.ToString());

            A=0;

            }

        }

 

   

 

        private void button1_Click(object sender, System.EventArgs e)

        {

 

        A+=15;

        Invalidate();// רענון עבור הציור החדש בכל לחיצה

        }

    }

 

    class GDI_1

    {

        public static void Main()

        {

            Application.Run(new MyForm());

        }

    }

}