ciao,
a mio avviso devi lavorare con gli eventi "Paint" e "MouseMove" della picture, dove nel primo vai a disegnare tramite oggetti del namespace System.Drawing il bottone, mentre nel secondo gestisci il fatto di esserci passato sopra.
Un terzo evento è ovviamente il "MouseClick" dove verifichi se ti è stato cliccato un punto dell'area del tuo bottone e fai quello che ti serve.
Un esempio di codice per fare qualcosa di simile:
Rectangle rectangle = new Rectangle(10, 20, 50, 50);
private void pictureBox1_Paint(object sender, PaintEventArgs e)
{
DisegnaBottone(e.Graphics);
}
private void pictureBox1_MouseMove(object sender, MouseEventArgs e)
{
Graphics graph = pictureBox1.CreateGraphics();
DisegnaBottone(graph);
if (rectangle.Contains(pictureBox1.PointToClient(MousePosition)))
graph.FillRectangle(new SolidBrush(Color.Silver), rectangle);
}
private void pictureBox1_MouseClick(object sender, MouseEventArgs e)
{
Graphics graph = pictureBox1.CreateGraphics();
if (rectangle.Contains(pictureBox1.PointToClient(MousePosition)))
MessageBox.Show("Premuto il pulsante");
}
private void DisegnaBottone(Graphics graphics)
{
graphics.DrawImage(pictureBox1.Image,
rectangle, rectangle,
GraphicsUnit.Pixel);
graphics.DrawRectangle(Pens.Black, rectangle);
graphics.DrawString(
"Premi",
new Font("Tahoma", 10f), Brushes.Black,
10,
rectangle.Y + (rectangle.Width / 2)
);
}
ciao.
Matteo Raumer
[MCAD .net]
http://blogs.dotnethell.it/freeteo