C# winform 自定義控件配置代碼 多顯示 換行

控件樣式 1

控件名稱:myRefueller

  public myRefueller [] RefuellerS { get; set; }
 /// <summary>
        /// 自定義控件加油機數量顯示
        /// </summary>
        /// <param name="conut"></param>
        public void Control(List<OilEngine_OilGun> list)
        {
            try
            {
                int qh = 1;
                int yj = 1;
                int nber = list.Count;//加油機數量
                //RefuellerS = new Control.Refueller1(nber);
                RefuellerS = new myRefueller[nber];//控件 
                if (nber > 7)
                {
                    for (int i = 0; i < 7; i++)
                    {
                        myRefueller r1 = new myRefueller();
                        r1.Name = "Jlj" + yj;
                        r1.Font = new Font("宋體", 9, FontStyle.Regular); //宋體, 9pt;
                        try
                        {
                            var getByWhere = db.Queryable<OilEngine_Oils>().Where(it => it.OilCode == list[i].OilCode).ToList();
                            r1.lb_Oils.Text = getByWhere[0].OilName; //顯示油品
                        }
                        catch (Exception)
                        {

                        }
                        r1.lb_Communication.Text = "通訊失敗"; //通訊
                        r1.lb_Communication.ForeColor = Color.Red;// Color.Lime; //通訊顏色
                        r1.Size = new Size(253, 366);
                        r1.Location = new Point(253 * i, 0);
                        r1.Show();
                        r1.panel1.Click += new EventHandler(r1_Click);
                        skinTabPage3.Controls.Add(r1);
                        RefuellerS[i] = r1;
                        Console.WriteLine(r1.Name);
                    }
                    nber = nber - 7;
                    if (nber > 0)
                    {
                        for (int i = 0; i < nber; i++)
                        {
                            myRefueller r1 = new myRefueller();
                            r1.Name = "Jlj" + yj;
                            r1.Font = new Font("宋體", 9, FontStyle.Regular); 
                            try
                            {
                                var getByWhere = db.Queryable<OilEngine_Oils>().Where(it => it.OilCode == list[7 + i].OilCode).ToList();
                                r1.lb_Oils.Text = getByWhere[0].OilName; //顯示油品
                            }
                            catch (Exception)
                            {

                            }
                            r1.lb_Communication.Text = "通訊失敗"; //通訊
                            r1.lb_Communication.ForeColor = Color.Red;// Color.Lime; //通訊顏色
                            r1.Size = new Size(253, 366);
                            r1.Location = new Point(253 * i, 366);
                            r1.Show();
                            r1.panel1.Click += new EventHandler(r1_Click);
                            skinTabPage3.Controls.Add(r1);
                            RefuellerS[i] = r1;
                            Console.WriteLine(r1.Name);
                        }
                    }
                }
                else
                {
                    for (int i = 0; i < nber; i++)
                    {
                        myRefueller r1 = new myRefueller();
                        r1.Name = "Jlj" + i;
                        r1.Font = new Font("宋體", 9, FontStyle.Regular); 
                        try
                        {
                            var getByWhere = db.Queryable<OilEngine_Oils>().Where(it => it.OilCode == list[i].OilCode).ToList();
                            r1.lb_Oils.Text = getByWhere[0].OilName; //顯示油品
                        }
                        catch (Exception)
                        {
                        }
                        r1.lb_Communication.Text = "通訊失敗"; //通訊
                        r1.lb_Communication.ForeColor = Color.Red;// Color.Lime; //通訊顏色
                        r1.Size = new Size(253, 366);
                        r1.Location = new Point(253 * i, 0);
                        r1.Show();
                        r1.panel1.Click += new EventHandler(r1_Click);
                        skinTabPage3.Controls.Add(r1);
                        RefuellerS[i] = r1;
                        Console.WriteLine(r1.Name);

                    }
                }
                // TextShowClass.Log("加載自定控件!");

            }
            catch (Exception ex)
            {
                MessageBox.Show(ex.Message);
                // TextShowClass.Log("加載自定控件!錯誤:" + ex.Message);
            }
        }

 

   #region  自定義控件防止閃爍
        protected override CreateParams CreateParams
        {
            get
            {
                var parms = base.CreateParams;
                parms.Style &= ~0x02000000;  // Turn off WS_CLIPCHILDREN
                return parms;
            }
        }
        #endregion
 /// <summary>
        /// 綁定 控件點擊事件
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        private void r1_Click(object sender, EventArgs e)
        {
             
            try
            {
               // MessageBox.Show(((myRefueller)sender).panel1.Name);//控件名字
     
            }
            catch (Exception ex)
            {

                Console.WriteLine(ex.Message);
            }

        }

效果圖:

 

第二種   兩種相同幾乎

  private void r1_Click(object sender, EventArgs e)
        {
            //Control.Refueller1 r1 = new Control.Refueller1();
            //(((Control.Refueller1)sender).Tag as TextBox).Text = ((Control.Refueller1)sender).Name;
            //MessageBox.Show(((Control.Refueller1)sender).Name);
            try
            {
                ((Control.Refueller1)sender).panel1.BackgroundImage = Image.FromFile(System.AppDomain.CurrentDomain.SetupInformation.ApplicationBase + "\\Pcture\\yuandian (1).png");
                ((Control.Refueller1)sender).panel2.BackgroundImage = Image.FromFile(System.AppDomain.CurrentDomain.SetupInformation.ApplicationBase + "\\Pcture\\yuandian.png");
                ((Control.Refueller1)sender).panel3.BackgroundImage = Image.FromFile(System.AppDomain.CurrentDomain.SetupInformation.ApplicationBase + "\\Pcture\\yuandian2.png");
                ((Control.Refueller1)sender).panel4.BackgroundImage = Image.FromFile(System.AppDomain.CurrentDomain.SetupInformation.ApplicationBase + "\\Pcture\\yuandian3.png");
            }
            catch (Exception ex)
            {

                Console.WriteLine(ex.Message);
            }

        }

 

  public  Control.Refueller1 [] RefuellerS { get; set; }

        /// <summary>
        /// 加油機控件
        /// 
        /// </summary>
        public void Control()
        {
            try
            {
                int qh = 1;
                int yj = 1;
                int nber = Convert.ToInt32(Config.OilNumber);
                //RefuellerS = new Control.Refueller1(nber);
                RefuellerS = new Control.Refueller1[nber];
                if (nber > 9)
                {
                    for (int i = 0; i < 8; i++)
                    {
                        Control.Refueller1 r1 = new Control.Refueller1();
                        r1.Name = "Jlj" + yj;
                        r1.label5.Text = yj++.ToString();
                        if (Convert.ToUInt32(Config.Oil(yj)) <= 2)
                        {
                            r1.label3.Visible = false;
                            r1.label4.Visible = false;
                            r1.panel3.Visible = false;
                            r1.panel4.Visible = false;
                            r1.label1.Text = Convert.ToString(qh++).PadLeft(2, '0');
                            r1.label2.Text = Convert.ToString(qh++).PadLeft(2, '0');
                        }
                        else
                        {
                            r1.label1.Text = Convert.ToString(qh++).PadLeft(2, '0');
                            r1.label3.Text = Convert.ToString(qh++).PadLeft(2, '0');
                            r1.label2.Text = Convert.ToString(qh++).PadLeft(2, '0');
                            r1.label4.Text = Convert.ToString(qh++).PadLeft(2, '0');
                        }

                        r1.Size = new Size(220, 281);
                        r1.Location = new Point(220 * i, 0);
                        r1.Show();
                        r1.Click += new EventHandler(r1_Click);
                        splitContainer1.Panel1.Controls.Add(r1);
                        RefuellerS[i]= r1;
                        Console.WriteLine(r1.Name);
                    }
                    nber = nber - 8;
                    if (nber > 0)
                    {
                        for (int i = 0; i < nber; i++)
                        {
                            Control.Refueller1 r1 = new Control.Refueller1();
                            r1.Name = "Jlj" + yj;
                            r1.label5.Text = yj++.ToString();
                            if (Convert.ToUInt32(Config.Oil(yj)) <= 2)
                            {
                                r1.label3.Visible = false;
                                r1.label4.Visible = false;
                                r1.panel3.Visible = false;
                                r1.panel4.Visible = false;
                                r1.label1.Text = Convert.ToString(qh++).PadLeft(2, '0');
                                r1.label2.Text = Convert.ToString(qh++).PadLeft(2, '0');
                            }
                            else
                            {
                                r1.label1.Text = Convert.ToString(qh++).PadLeft(2, '0');
                                r1.label3.Text = Convert.ToString(qh++).PadLeft(2, '0');
                                r1.label2.Text = Convert.ToString(qh++).PadLeft(2, '0');
                                r1.label4.Text = Convert.ToString(qh++).PadLeft(2, '0');
                            }

                            r1.Size = new Size(220, 281);
                            r1.Location = new Point(220 * i, 281);
                            r1.Show();
                            r1.Click += new EventHandler(r1_Click);
                            splitContainer1.Panel1.Controls.Add(r1);
                            RefuellerS[i] = r1;
                            Console.WriteLine(r1.Name);
                        }
                    }
                }
                else
                {
                    for (int i = 0; i < nber; i++)
                    {
                        Control.Refueller1 r1 = new Control.Refueller1();
                        r1.Name = "Jlj" + yj;
                        r1.label5.Text = yj++.ToString();
                        if (Convert.ToUInt32(Config.Oil(yj)) <= 2)
                        {
                            r1.label3.Visible = false;
                            r1.label4.Visible = false;
                            r1.panel3.Visible = false;
                            r1.panel4.Visible = false;
                            r1.label1.Text = Convert.ToString(qh++).PadLeft(2, '0');
                            r1.label2.Text = Convert.ToString(qh++).PadLeft(2, '0');
                           
                        }
                        else
                        {
                            r1.label1.Text = Convert.ToString(qh++).PadLeft(2, '0');
                            r1.label3.Text = Convert.ToString(qh++).PadLeft(2, '0');
                            r1.label2.Text = Convert.ToString(qh++).PadLeft(2, '0');
                            r1.label4.Text = Convert.ToString(qh++).PadLeft(2, '0');
                        }
                        r1.Size = new Size(220, 281);
                        r1.Location = new Point(220 * i, 0);
                        r1.Show();
                        r1.Click += new EventHandler(r1_Click);
                        splitContainer1.Panel1.Controls.Add(r1);
                        RefuellerS[i] = r1;
                        Console.WriteLine(r1.Name);

                    }
                }
                TextShowClass.Log("加載自定控件!");
              
            }
            catch (Exception ex)
            {
                MessageBox.Show(ex.Message);
                TextShowClass.Log("加載自定控件!錯誤:"+ ex.Message);
            }
        }

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章