- Obsbot blog: AI funkciókat ígérő, mégis megfizethető webkamerák
- Megfizethető miditoronnyal gyarapodott a Phanteks Eclipse termékcsaládja
- Bemutatkozott a Lexar legfrissebb, strapabíró memóriakártyája, a Blue Plus
- A G.Skill DDR5 memóriájával lassacskán a 13 GHz-es határt ostromolják
- Combosnak tűnik a Thermalright legfrissebb, kéttornyos CPU-hűtője
- AMD K6-III, és minden ami RETRO - Oldschool tuning
- OLED TV topic
- Milyen monitort vegyek?
- Xiaomi Pad 6 - kiapadhatatlan jóság
- TCL LCD és LED TV-k
- MILC felhasználók szakmai topikja
- Nagyon érzékeny lett a játékok archiválására a Nintendo
- Sony MILC fényképezőgépcsalád
- NVIDIA GeForce RTX 5070 / 5070 Ti (GB205 / 203)
- Milyen HASZNÁLT notebookot vegyek?
Új hozzászólás Aktív témák
-
Zalanius
tag
válasz
BTminishop #8017 üzenetére
Ehhez előbb a Click eventet elfogni képes elemre van szükség. Többféleképpen is neki lehet vágni, ha mindenképpen szeretnél egy mátrixot, akkor azt fel lehet építeni pictureBox vagy hasonló elemekből is, és akkor a tömb minden eleméhez hozzárendelhető egy metódus rajzolási célból.
De itt akár mellőzhetők is a tömbök, ha "canvas" céljából egy pictureBoxot vagy hasonlót alkalmazunk, és a kattintás koordinátáiból állapítod meg utána, hogy a sakktábla melyik mezőjére kell rajzolni. Tegyük fel, hogy adott egy 400*400 pixeles pictureBox (pb), meg valahol a fájlrendszerben egy kép tesztelésre (queen_41.png), ekkor vázlatosan:
const int WIDTH = 50;
const int SIZE = 8;
const int IMGSIZE = 41;
const string IMGPATH = @"T:\queen_41.png";
public Form1()
{
InitializeComponent();
pb.MouseClick += Pb_MouseClick;
}
private void button1_Click(object sender, EventArgs e)
{
Graphics g = pb.CreateGraphics();
for (int i = 0; i < SIZE; i++)
{
for (int j = 0; j < SIZE; j++)
{
g.FillRectangle((i + j) % 2 == 0 ? Brushes.White : Brushes.Black, i * WIDTH, j * WIDTH, WIDTH, WIDTH);
}
}
}
private void Pb_MouseClick(object sender, MouseEventArgs e)
{
float x, y;
x = e.X - (e.X % WIDTH) + (WIDTH - IMGSIZE) / 2;
y = e.Y - (e.Y % WIDTH) + (WIDTH - IMGSIZE) / 2;
Graphics g = pb.CreateGraphics();
g.DrawImage(Image.FromFile(IMGPATH), x, y);
}
Új hozzászólás Aktív témák
● ha kódot szúrsz be, használd a PROGRAMKÓD formázási funkciót!
- Csere-Beszámítás! RGB Számítógép PC játékra! R5 5600X / RTX 3060Ti 8GB / 32GB DDR4 / 500GB SSD
- Új! Számla + 1-3ÉV Gari! Áfás! Gamer PC - Számítógép! R5 9600X / RX 9070XT / 32GB DDR5 / 1TB SSD M.2
- Részletfizetés , Acer Nitro V 15 minimálisan használt uj állapot sok garancia
- PlayStation Plus Premium előfizetések
- ASUS Radeon HD6950 DirectCU II 2GB 256bit GDDR5 EAH6950 DCII/2DI4S/2GD5 Videokártya eladó
Állásajánlatok
Cég: Promenade Publishing House Kft.
Város: Budapest
Cég: PCMENTOR SZERVIZ KFT.
Város: Budapest