控件样式 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_CLIPCHILDRENreturn 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);}}