Une image claire sur picturebox
Comment puis-je effacer une image sur picturebox? La suite ne m'aide pas:
pictbox.Image = null;
pictbox.Invalidate();
s'il vous Plaît aider.
EDIT
private void pictbox_Paint(object sender, PaintEventArgs e)
{
Graphics g = e.Graphics;
vl.Draw(g, ref tran.realListForInsert);
}
public void Draw(Graphics g, ref List<double> arr)
{
g.DrawRectangle(new Pen(Brushes.Red, 3), nodeArr[Convert.ToInt32(templstName)].pict.Location.X, nodeArr[Convert.ToInt32(templstName)].pict.Location.Y, 25, 25);
g.DrawRectangle(new Pen(Brushes.Green, 3), nodeArr[Convert.ToInt32(templstArgName)].pict.Location.X, nodeArr[Convert.ToInt32(templstArgName)].pict.Location.Y, 25, 25);
nodeArr[Convert.ToInt32(templstName)].text.Text = arr[Convert.ToInt32(templstArgName)].ToString();
arr[Convert.ToInt32(templstName)] = arr[Convert.ToInt32(templstArgName)];
}
12 réponses
comme d'autres l'ont dit, définir le Image
propriété null
ça devrait marcher.
Si ça ne marche pas, il pourrait signifier que vous avez utilisé l' InitialImage propriété pour afficher votre image. Si c'est effectivement le cas, essayez de définir la propriété null
au lieu de:
pictBox.InitialImage = null;
Image
propriété null fonctionnent très bien. Il effacera quelle que soit l'image actuellement affichée dans la zone d'image. Assurez-vous que vous avez écrit le code exactement comme ceci:
picBox.Image = null;
if (pictureBox1.Image != null)
{
pictureBox1.Image.Dispose();
pictureBox1.Image = null;
}
je suppose que vous voulez effacer les Images dessinées via PictureBox.
ceci serait réalisé via un objet Bitmap et en utilisant un objet Graphics. vous pourriez faire quelque chose comme
Graphics graphic = Graphics.fromimage(pictbox.Image);
graphic.Clear(Color.Red)//Color to fill the background and reset the box
Est-ce ce que vous cherchiez ?
EDIT
puisque vous utilisez la méthode de la peinture ce qui causerait de le redessiner à chaque fois, je vous suggérerais de mettre un drapeau au niveau de la forme indiquant si elle devrait ou non peindre le Picturebox
private bool _shouldDraw = true;
public bool ShouldDraw
{
get { return _shouldDraw; }
set { _shouldDraw = value; }
}
Dans votre peinture suffit d'utiliser
if(ShouldDraw)
//do your stuff
Lorsque vous cliquez sur le bouton définir cette propriété sur false et vous devriez être bien.
private void ClearBtn_Click(object sender, EventArgs e)
{
Studentpicture.Image = null;
}
pictBox1.Image = null;
Cela fonctionne sur moi. Le premier truc ne marche pas sur mon projet.
Vous avez besoin de ce qui suit:
pictbox.Image = null;
pictbox.update();
j'ai eu une image têtue aussi, qui ne voulait pas s'en aller en réglant l'Image et L'InitialImage à null. Pour supprimer l'image de la pictureBox pour de bon, j'ai dû utiliser le code ci-dessous, en appelant Application.DoEvents() à plusieurs reprises:
Application.DoEvents();
if (_pictureBox.Image != null)
_pictureBox.Image.Dispose();
_pictureBox.Image = null;
Application.DoEvents();
if (_pictureBox.InitialImage != null)
_pictureBox.InitialImage.Dispose();
_pictureBox.InitialImage = null;
_pictureBox.Update();
Application.DoEvents();
_pictureBox.Refresh();
j'ai dû ajouter une instruction Refresh () après L'Image = null pour faire fonctionner les choses.
Vous devriez essayer. Lorsque vous effacer vos graphiques, vous devez choisir la couleur. SystemColors.Le contrôle est la couleur native de la forme
Graphics g = pB.CreateGraphics();
g.Clear(SystemColors.Control);
effacer pictureBox en c# winform Application Simple façon de supprimer pictureBox dans l'Application c # winform
C'est si simple! Vous pouvez aller avec votre événement clic du bouton, Je l'ai utilisé avec un bouton Nom de la propriété: "btnClearImage"
// Note 1a:
// after clearing the picture box
// you can also disable clear button
// by inserting follwoing one line of code:
btnClearImage.Enabled = false
// Note 1b:
// you should set your button Enabled property
// to "False"
// after that you will need to Insert
// the following line to concerned event or button
// that load your image into picturebox1
// code line is as follows:
btnClearImage.Enabled = true;