Visual CSharp .NET - Como utilizar un.Refresh con el panel

   
Vista:

Como utilizar un.Refresh con el panel

Publicado por Thania (2 intervenciones) el 22/05/2014 03:11:45
Hola estoy desarrollando un paint en c# para un proyecto escolar ;( y supongamos que ya dibuje sobre el panel y minimizo la ventana , pero al volverla a abrir ya me aparece el panel en blanco, osea me lo borra todo, como le hago para que no los borre y que al momento de abrir nuevamente la ventana sigan los trazos o el dibujo que ya había hecho, por favor necesito el código, éste es el código de todo mi programa , se los pongo porque ya eh investigado mucho para encontrar el código y cuando lo pongo me marca errores pero pienso que es por la forma en que llame mis objetos o yo que se, y casi nunca eh usad c# así que no se ajaja, espero y me puedan ayudar y de ante mano gracias :) , pero aquí esta mi código:


using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;

namespace Paint1
{
public partial class Form1 : Form
{
private SolidBrush mibrocha;
private Graphics migrafica;


private bool pintando = false;

public Form1()
{
InitializeComponent();
}

private void panel2_Click(object sender, EventArgs e)
{
if (colorDialog1.ShowDialog() == DialogResult.OK)
{
mibrocha.Color = colorDialog1.Color;
}

}

private void Form1_Load(object sender, EventArgs e)
{
mibrocha = new SolidBrush(panel2.BackColor);


}

private void panel1_MouseDown(object sender, MouseEventArgs e)
{
pintando = true;
}

private void panel1_MouseUp(object sender, MouseEventArgs e)
{
pintando = false;
}

private void panel1_MouseMove(object sender, MouseEventArgs e)
{
if (pintando == true)
{
migrafica = panel1.CreateGraphics();
migrafica.FillEllipse(mibrocha, e.X, e.Y, trackBar1.Value, trackBar1.Value);
{

}
}
}

private void Limpiar_Click(object sender, EventArgs e)
{
Graphics g1 = panel1.CreateGraphics();
g1.Clear(panel1.BackColor);
}

private void button1_Click(object sender, EventArgs e)
{
this.Close();
}

private void button2_Click(object sender, EventArgs e)
{
colorDialog1.ShowDialog();
panel1.BackColor = colorDialog1.Color;
}



private void button3_Click(object sender, EventArgs e)
{
mibrocha.Color = panel1.BackColor;
}

private void button4_Click(object sender, EventArgs e)
{
{
Form2 frm = new Form2();
frm.Show();
}
}

private void button5_Click(object sender, EventArgs e)
{
{
Form3 frm = new Form3();
frm.Show();
}
}

}

}
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

Como utilizar un.Refresh con el panel

Publicado por Pico (28 intervenciones) el 22/05/2014 09:07:30
Tienes que vover a pintarlo. Windows no guarda lo que se pinta en una ventana en ningún sitio. Cada vez que repinta una ventana tiene que volver a pintarlo todo. La manera de hacer lo que quieres no es pintar directamente en el panel, en la ventana, sino en un bitmap, y cada vez que se repinta el panel, se pinta el bitmap en el panel.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar