J'ai un bloc d'image (image 1) et dans cette boîte j'ai dessiné un rectangle et affiché la partie dessinée à l'aide d'une autre image (image 2). Le problème est que lorsque je dessine un rectangle (dans la boîte d'image 1), la boîte d'image 2 ne s'affiche pas, mais lorsque vous changez la position du formulaire (déplacez le formulaire), la boîte d'image 2 apparaît.Diaplay image issue
Comment afficher la potion tirée ...
private void pictureBox1_Paint(object sender, PaintEventArgs e)
{
using (Pen pen = new Pen(Color.Green, 2))
{
pen.Color = Color.Red;
pen.DashStyle = System.Drawing.Drawing2D.DashStyle.Dash;
e.Graphics.DrawRectangle(pen, rect);
foreach (Rectangle r in rectangles)
{
label1.Top = r.Top; label1.Left = r.Left; label1.Width = r.Width;
label1.Height = r.Height;
e.Graphics.DrawRectangle(pen, r);
e.Graphics.DrawString(label1.Text, label1.Font, new SolidBrush(label1.ForeColor), r);
}
}
if (!(rect.Width <= 0 | rect.Height <= 0))
{
sz1.Width = rect.Width * Convert.ToInt16(1.5);
sz1.Height = rect.Height * Convert.ToInt16(1.5);
pictureBox2.Size = sz1;
w.X = 500; w.Y = 20;
pictureBox2.Location = w;
Bitmap niv = new Bitmap(pictureBox2.Width, pictureBox2.Height);
using (Graphics g1 = Graphics.FromImage(niv))
{
g1.InterpolationMode = InterpolationMode.HighQualityBicubic;
g1.DrawImage(pictureBox1.Image, pictureBox2.ClientRectangle, rect, GraphicsUnit.Pixel);
}
pictureBox2.Image = niv;
pictureBox2.Visible = true;
pictureBox2.Invalidate();
}
}
Winforms ou WPF? –
Si vous effectuez une peinture personnalisée des contrôles, vous devrez peut-être réviser le code. Si vous fournissez des portions de code appropriées, cela vous aidera. – Nayan
Il serait utile de poster du code. Votre problème semble être que le PictureBox 2 n'est pas rendu, sauf si vous repeindre le formulaire. Le code aidera à diagnostiquer pourquoi cela pourrait se produire. – Prashant