Diskuze: Event pro všech 170 picture boxů ve formu
V předchozím kvízu, Test znalostí C# .NET online, jsme si ověřili nabyté zkušenosti z kurzu.
Člen
Zobrazeno 11 zpráv z 11.
//= Settings::TRACKING_CODE_B ?> //= Settings::TRACKING_CODE ?>
V předchozím kvízu, Test znalostí C# .NET online, jsme si ověřili nabyté zkušenosti z kurzu.
Honza má naprostou pravdu, měl bys mu označit řešení.
Ještě vysvětlení - ty jsi v původní eventové metodě měnil Properties.Resources.yellow kontrolce pictureBox1. Objekt, který eventovou metodu zavolá s sebou metoda nese, je to parametr "sender" metody. Musíš ho přetypovat na příslušnou kontrolku, v tomto případě na PictureBox. Na něj pak aplikuješ změnu vlastnosti Image
Cilem je samozrejme, aby zmenil barvu kazdej picbox, kdyz na nej kliknu, ten pictureBox1.Image = Properties.Resources.yellow; jsem tam mel jen proto, abych věděl, jestli to funguje alespon trosku...
Teď se změní barva pouze u picboxu1, kvuli eventu primo na nej, ale u ostatních to nedělá nic..
public partial class Range_Builder : Form
{
public Range_Builder()
{
InitializeComponent();
foreach(Control objekt in Controls)
{
if (objekt is PictureBox)
objekt.Click += new EventHandler(PicClick);
}
pictureBox1.Click += PicClick; //tohle funguje, ale jen pro prvni picbox
}
private void PicClick(object sender, EventArgs e)
{
PictureBox pic = (PictureBox)sender;
pic.Image = Properties.Resources.yellow;
}
}
pokud jsem to pochopil správně, tak chceš, aby se po kliknutí na jakýkoliv box, změnil jeho obrázek. Pokud je to tak, tak to fungovat musí.
A není to tak jak píše Petr, že ty boxy nemáš přímo na formuláři, ale třeba v panelu?
foreach(Control objekt in mujPanel.Controls)
Zobrazeno 11 zpráv z 11.