C sharp - tabControl y Graphics

 
Vista:

tabControl y Graphics

Publicado por Gibran Arellano (2 intervenciones) el 08/04/2020 22:17:39
Necesito saber como usar el método/tipo "Graphics" fuera de su evento Paint, en este caso en un evento de botón. De la manera que está mi código, compila y los IF funcionan, lo que no hace nada es la parte de dibujar la forma y el drawString.
tabPage.Invalite(); los puse pero no hacen nada. Lo tengo que poner fuera del evento Paint ya que debo ingresar una cantidad y al momento de dar click al botón9 dibujara una parte de la figura.
Este es el código:


1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
private void button9_Click(object sender, EventArgs e)
{
    Graphics g = Graphics.FromHwnd(Handle);
    Font fuent = new Font("Magneto", 12);
    int temperatura;
    temperatura = (Int32.Parse(textBox19.Text));
    tabPage1.Invalidate();
    tabPage2.Invalidate();
 
    if (temperatura >= 0 && temperatura <= 20)
    {
        g.DrawString ("Frío", fuent, Brushes.Blue, 300, 100);
        g.DrawArc(Pens.Blue, new RectangleF(200, 213, 100, 100), 350, 200);
        g.Dispose();
        label21.Text = ("Frío");
 
 
    }
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

tabControl y Graphics

Publicado por Nacho (115 intervenciones) el 08/04/2020 22:43:06
Vaya lío.

Puedes pintar en una ventana cuando quieras, en el evento que sea, o desde otro programa incluso. Lo que tienes que tener en cuenta es que si Windows pinta una ventana en cuanto acabas de pintar tú, no vas a ver nada. Windows pinta cuando considera que tiene que pintar o si le fuerzas tú a pintar con un invalidate, que es lo que haces. O sea, si pintas algo y nada más pintar llamas a invalidate, va a borrar la ventana entera con lo que acabas de pintar y va a pintar lo que se encuentre en la función de respuesta a WM_PAINT.

No hay por qué pintar fuera del evento Paint. No tendrías más que poner una condición para pintar lo que quieras cuando se dé esa condición. Resulta mucho más fácil de controlar lo que se pinta.
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

tabControl y Graphics

Publicado por Gibran (2 intervenciones) el 08/04/2020 23:55:51
En el evento Paint no puedo utilizar el evento de Button_Click.
Quiero que al momento de escribir una cantidad en el textBox y dar click en el botón, me imprima el arco que le estoy indicando y el texto con drawString. Cabe resaltar que estoy trabajando con 2 tabControl.
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

tabControl y Graphics

Publicado por Nacho (115 intervenciones) el 09/04/2020 12:02:25
Ya sé lo que quieres hacer y sé el problema que tienes. Yo quise hacer eso mismo que tú la primera vez con el Windows 3.1 y tuve exactamente el mismo problema. Desde entonces he pintado donde he querido y cuando he querido. Así que puedes intentar entender lo que te digo, quedarte con el problema, esperar a que responda otro....
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