C# dynamicka tlacitka a predani parametru po kliknuti
Timhle kodem vytvarim dynamicka tlacitka a potrebuji funkci dynamicButtonClick predat jeden parametr typu string
[CODE]
Button pol = new Button();
pol.Size = new Size(sirka,35);
pol.Top = vyska;
pol.Left = 12+pocet_px_st;
pol.BackColor = stringToColor(System.Convert.ToString(b.GetValue(2)));
pol.Click+=new System.EventHandler(dynamicButtonClick);
pol.Text = System.Convert.ToString(b.GetValue(1));
this.Controls.Add(pol);
pol.BringToFront();
[/CODE]
Prohledal jsem vsechno mozne, ale nikde jsem na vyreseni podobneho problemu nenarazil (maximalne tak v asp.net) ale to je mi asi k nicemu :(
v C# delam teprve par dni, takze prosim kdyztak trochu polopate... diky..
[CODE]
Button pol = new Button();
pol.Size = new Size(sirka,35);
pol.Top = vyska;
pol.Left = 12+pocet_px_st;
pol.BackColor = stringToColor(System.Convert.ToString(b.GetValue(2)));
pol.Click+=new System.EventHandler(dynamicButtonClick);
pol.Text = System.Convert.ToString(b.GetValue(1));
this.Controls.Add(pol);
pol.BringToFront();
[/CODE]
Prohledal jsem vsechno mozne, ale nikde jsem na vyreseni podobneho problemu nenarazil (maximalne tak v asp.net) ale to je mi asi k nicemu :(
v C# delam teprve par dni, takze prosim kdyztak trochu polopate... diky..
pokud opravdu potrebujes predavat Click-event handleru string-parametr, tak si muzes treba vytvorit potomka Button, u ktereho nadefinujes Click-event s danym parametrem... jednodussi to ale asi budes mit, kdyz pouzijes sdilenou promennou....
Jen doplnim - resenim muze byt take prepsani (override) metody OnClick tridy Button.
Vytvorite potomka tridy EventArgs
[CODE]
public class ParamEventArgs : EventArgs
{
private string m_stringArgs;
public ParamEventArgs (string stringArgs)
{
m_stringArgs = stringArgs;
}
public string StringArgs
{
get
{
return m_stringArgs;
}
}
}
[/CODE]
V metode OnCLick "zahodite" puvodni EventArgs a vytvorite instanci ParamEventArgs. Pak zavolate base.OnClick (e), kde e je instance ParamEventArgs.
V Handleru udalosti staci pretypovat argument e na ParamEventArgs
Vytvorite potomka tridy EventArgs
[CODE]
public class ParamEventArgs : EventArgs
{
private string m_stringArgs;
public ParamEventArgs (string stringArgs)
{
m_stringArgs = stringArgs;
}
public string StringArgs
{
get
{
return m_stringArgs;
}
}
}
[/CODE]
V metode OnCLick "zahodite" puvodni EventArgs a vytvorite instanci ParamEventArgs. Pak zavolate base.OnClick (e), kde e je instance ParamEventArgs.
V Handleru udalosti staci pretypovat argument e na ParamEventArgs