C'est assez facile à faire. Chaque contrôle sur le formulaire a une taille et une propriété de localisation, que vous pouvez utiliser pour instancier un nouveau rectangle, comme ceci:
Rectangle rect = new Rectangle(button1.Location, button1.Size);
Pour obtenir une Bitmap qui contient la partie de l'image d'arrière-plan situé derrière le contrôle, vous créez un Bitmap des dimensions appropriées:
Bitmap bmp = new Bitmap(rect.Width, rect.Height);
vous créez ensuite un objet graphique pour la nouvelle image, et utilisez la méthode DrawImage de cet objet pour copier une partie de l'image d'arrière-plan:
using (Graphics g = Graphics.FromImage(bmp))
{
g.DrawImage(...); // sorry, I don't recall which of the 30 overloads
// you need here, but it will be one that uses form1.Image as
// the source, and rect for the coordinates of the source
}
Cela vous laissera avec le nouveau bitmap (bmp) contenant la partie de l'image d'arrière-plan sous ce contrôle.
Désolé je ne peux pas être plus précis dans le code - je suis à un terminal public. Mais l'information IntelliSense vous dira ce que vous devez transmettre pour la méthode DrawImage.
Pourriez-vous poster des informations sur ce que vous essayez de faire? –