Gå til innhold

Hvordan få graphics til å vises i Form1 fra en annen klasse


Anbefalte innlegg

Noen som kan hjelpe meg å forklare meg hvorfor jeg ikke får "led" til å vises når den blir kallet ifra "Sim" klassen

 

får den bare til å fungere hvis jeg legger den under Form1

public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();
        }

        private void button1_Click(object sender, EventArgs e)
        {
            Sim  s = new Sim();
            s.light();
        }

        public void led()
        {
            Graphics g = this.CreateGraphics();
            g.DrawEllipse(new Pen(Brushes.Black), 100, 100, 12, 12);
            g.FillEllipse(Brushes.Red, 100, 100, 12, 12);
        }
        public class Sim
        {
            Form1 frm1 = new Form1();
            public void light()
            {
                frm1.led();
            }
        }
Lenke til kommentar
Videoannonse
Annonse

Takk for svaret "The Jackal" , kom meg litt videre, byttet ut:

 

Graphics g = this.CreateGraphics();

 

med

 

Graphics g = Form1.activeform.CreateGraphics();

 

og alt virket tilsynelatende, men programmet kræsjet så snart jeg kjører fungsjonen i en loop og åpner et annet program.

 

Har lest på dette og googlet i et par dager nå, men får det bare ikke inn :p, får jo alltids programmene mine til å fungere, men da må alt ligge under samme klasse, men føler at endel av programmene mine begynner å bli så såpass store når det gjelder menge kode, at jeg burde lære meg litt om object oriented programming for å fordele koden litt, også med tanke på å gjennbruke den.

 

Har bare gjennskapt problemet mitt i en så enkel som mulig kode, men dette er en del av et program som skriver til en ftdi basert usb kabel, så vil jeg ha RX og TX led som blinker etter som kommunikasjonen går.

Lenke til kommentar
  • 4 uker senere...
    public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}

private bool ledState;

private void button1_Click(object sender, EventArgs e)
{
Led();
}

public void Led()
{
ledState = !ledState;
Invalidate();
}

protected override void OnPaint(PaintEventArgs e)
{
base.OnPaint(e);
e.Graphics.FillEllipse(ledState ? Brushes.Red : Brushes.Green, 100, 100, 12, 12);
e.Graphics.DrawEllipse(new Pen(Brushes.Black), 100, 100, 12, 12);
}
}
Lenke til kommentar

Opprett en konto eller logg inn for å kommentere

Du må være et medlem for å kunne skrive en kommentar

Opprett konto

Det er enkelt å melde seg inn for å starte en ny konto!

Start en konto

Logg inn

Har du allerede en konto? Logg inn her.

Logg inn nå
×
×
  • Opprett ny...