PDA

View Full Version : نحوه اسال یه کامپوننت و براش در c#



md3848
چهارشنبه 30 تیر 1395, 12:05 عصر
سلام - چون اون چیزی که در عنوان سوال مطرح کردم رو بلد نیستم - تابع مورد نیاز رو به صورت زیر نوشتم - اگه میشد به تابع نام panel رو رسال کنم و رنگ براش - اون وقت تابع خیلی ساده میشد - کسی نحوه این کار رو میدونه؟

private void SetFillEllipse(bool Color, int Pannel) {
Graphics g = CreateGraphics();


if (Color)
{
if (Pannel == 1) g.FillEllipse(Brushes.Green, panel1.Location.X/*x*/, panel1.Location.Y/*y*/, panel1.Width/*width*/, panel1.Height/*height*/);
if (Pannel == 2) g.FillEllipse(Brushes.Green, panel2.Location.X/*x*/, panel2.Location.Y/*y*/, panel2.Width/*width*/, panel2.Height/*height*/);
if (Pannel == 3) g.FillEllipse(Brushes.Green, panel3.Location.X/*x*/, panel3.Location.Y/*y*/, panel3.Width/*width*/, panel3.Height/*height*/);
if (Pannel == 4) g.FillEllipse(Brushes.Green, panel4.Location.X/*x*/, panel4.Location.Y/*y*/, panel4.Width/*width*/, panel4.Height/*height*/);
if (Pannel == 5) g.FillEllipse(Brushes.Green, panel5.Location.X/*x*/, panel5.Location.Y/*y*/, panel5.Width/*width*/, panel5.Height/*height*/);
if (Pannel == 6) g.FillEllipse(Brushes.Green, panel6.Location.X/*x*/, panel6.Location.Y/*y*/, panel6.Width/*width*/, panel6.Height/*height*/);
if (Pannel == 7) g.FillEllipse(Brushes.Green, panel7.Location.X/*x*/, panel7.Location.Y/*y*/, panel7.Width/*width*/, panel7.Height/*height*/);
if (Pannel == 8) g.FillEllipse(Brushes.Green, panel8.Location.X/*x*/, panel8.Location.Y/*y*/, panel8.Width/*width*/, panel8.Height/*height*/);
}
else
{
if (Pannel == 1) g.FillEllipse(Brushes.Red, panel1.Location.X/*x*/, panel1.Location.Y/*y*/, panel1.Width/*width*/, panel1.Height/*height*/);
if (Pannel == 2) g.FillEllipse(Brushes.Red, panel2.Location.X/*x*/, panel2.Location.Y/*y*/, panel2.Width/*width*/, panel2.Height/*height*/);
if (Pannel == 3) g.FillEllipse(Brushes.Red, panel3.Location.X/*x*/, panel3.Location.Y/*y*/, panel3.Width/*width*/, panel3.Height/*height*/);
if (Pannel == 4) g.FillEllipse(Brushes.Red, panel4.Location.X/*x*/, panel4.Location.Y/*y*/, panel4.Width/*width*/, panel4.Height/*height*/);
if (Pannel == 5) g.FillEllipse(Brushes.Red, panel5.Location.X/*x*/, panel5.Location.Y/*y*/, panel5.Width/*width*/, panel5.Height/*height*/);
if (Pannel == 6) g.FillEllipse(Brushes.Red, panel6.Location.X/*x*/, panel6.Location.Y/*y*/, panel6.Width/*width*/, panel6.Height/*height*/);
if (Pannel == 7) g.FillEllipse(Brushes.Red, panel7.Location.X/*x*/, panel7.Location.Y/*y*/, panel7.Width/*width*/, panel7.Height/*height*/);
if (Pannel == 8) g.FillEllipse(Brushes.Red, panel8.Location.X/*x*/, panel8.Location.Y/*y*/, panel8.Width/*width*/, panel8.Height/*height*/);
}
}

Felony
چهارشنبه 30 تیر 1395, 18:09 عصر
private void SetFillEllipse(Brush panelColor, string panelName)
{
Graphics g = CreateGraphics();
var ctrl = Controls[panelName];
if (ctrl != null)
g.FillEllipse(panelColor, panel1.Location.X /*x*/, panel1.Location.Y /*y*/, panel1.Width /*width*/, panel1.Height /*height*/);

}

Mahmoud.Afrad
چهارشنبه 30 تیر 1395, 18:15 عصر
پارامتر را هم میتونید از جنس Panel انتخاب کنید.
private void SetFillEllipse(Panel panel, bool color)
{
Graphics graphics = panel.CreateGraphics();
Brush brush = color ? Brushes.Green : Brushes.Red;
graphics.FillEllipse(brush, 0, 0, panel.Width, panel.Height);
}
در هنگام فراخوانی پنل مورد نظر رو به عنوان پارامتر اول ارسال کنید.
میتونید پارامتر دوم رو از نوع brush انتخاب کنید و ..