Zdravím mám problém ohledně dvou metod - click a paint. Když kliknu na tlačítko tak chci nechat nakreslit obrázek(z properties.resources) ale metoda click událost paint nemá. Takže jsem udělal dvě tlačítko_paint a tlačítko_click. Paint - obshajue DrawImage a pak v Click chci tu metodu paint zavolat, ale chcce to mě parametry object a sender, které nevím kde vzít. Dá se to takhle vubec realizovat?
Fórum › .NET
Propojení button_click a button_paint
No to je trochu nejaky zmateny - kam chces vykreslovat ten obrazek - ???? do canvsu tlacitka ????
popis ten problem lepe
však to je jednoduchý...
1) musíš někde zjišťovat, zda si na tlačítko kliknul
2) vždy když klikneš na tlačítko, tak musíš zavolat překreslení
3) paint bude vykreslovat obrazek pouze, kdyz si kliknul na tlačítko (jen v režimu ON)
PS: predpokladam, že kreslíš na form
PPS: a ještě si nenapsal, jestli se má obrázek nakreslit pouze při kliknutí, nebo jestli má mít tlačítko 2 řežimy (on/off)
hm?
public partial class Form1 : Form
{
private bool clicked = false;
public Form1()
{
InitializeComponent();
}
private void ClickPaintImage(object sender, EventArgs e)
{
clicked = true; // pripadne... clicked = !clicked;
Refresh();
}
private void OnPaint(object sender, PaintEventArgs e)
{
if (clicked)
e.Graphics.DrawImage(Resources.IMAGE, Point.Empty);
}
}
No tak to je jednoduchy
prtected void tlacitko_click(object sender,EventArgs args)
{
using(Graphics g=this.panel.getGraphics()){
g.drawPicture(.....
}
}
Psal jsem to z hlavy takze se podivej jak ti inselince doplni spravne nazvy metod
Pomoci Onpaint bych to nektreslil ta meto da se zavola vzdy pri nejake akci nad formularem (zmena rozmeru zmena pozice) a da se predpokladat ze se ti tam vrati defaultni obrazek a nebo se ten nakresleny nejakym zpusobem poondi
udělěj to, jak jsem psal ja.. to jak psal VladislavK nedělej...
snad žádná komponenty nená getGraphics(), ale CreateGraphics(), což znamená, že to sice vytvoří, ale po překreslení všechno zmizí (např. minimalizace apod.), ale pokud by jsi to z nějakého důvodu chtěl takto, tak jen opravenej kód od vladislava...
private void ClickPaintImage(object sender, EventArgs e)
{
using (Graphics g = panel.CreateGraphics())
{
g.Clear(panel.BackColor);
g.DrawImage(Resources.IMAGE, Point.Empty);
}
}
ale jak říkám.. pro veškeré kreslení používej pouze klasickou událost Paint a přes ní získej grafiku
Jakej je rozdil mezi
private void ClickPaintImage(object sender, EventArgs e)
a
prtected void tlacitko_click(object sender,EventArgs args)
ja myslim ze se jedna o stejny handler tlacitka reagujici na klik
jinak mas pravdu neni tam GetGraphics ale CreateGraphics (g.drawPicture - g.drawImage ) ---> psal jsem to z hlavy
ale jinak jse jedna o uplne stejny kod takze vcem je rozdil ???
#9 VladislavK
pokud pominu špatně napsané funkce v tvém kódu, tak jsou funkce krom modifikátoru totožné, ale z pravidla doporučuji uvádět všude private pokud nepotřebuješ jinak
Přidej příspěvek
Ano, opravdu chci reagovat → zobrazí formulář pro přidání příspěvku
×Vložení zdrojáku
×Vložení obrázku
×Vložení videa
Uživatelé prohlížející si toto vlákno
Podobná vlákna
C++ propojeni — založil
Propojení DB — založil Pajin
Propojení formulářů — založil razzo7335
Moderátoři diskuze