1 svar
32 visningar
Andy500 är nöjd med hjälpen
Andy500 1
Postad: 6 dec 2023 14:03

Rita rektangel på en tabpage i C# (skoluppgift)

Hej!

Har en skoluppgift (programmering 1) och vet inte riktigt hur jag ska ta mig vidare. Fortfarande rätt ny inom det här så ber om ursäkt om jag inte använder rätt begrepp m.m.

Om jag exempelvis vill rita en rektangel med positionen (100, 100) och storleken (100 x 100 pixlar) så har jag gjort så här:

protected override void OnPaint(PaintEventArgs e)
{
     Graphics g = e.Graphics;
     SolidBrush brush = new SolidBrush(Color.Black);
     g.FillRectangle(brush, 100, 100, 100, 100);
}

Dock ritas kvadraten på Form1 och eftersom jag i skoluppgiften har använt mig utav en Tabcontrol med några Tabpages, så syns inte den svarta kvadraten som ritas eftersom Tabcontrol ligger ovanför.

Vet inte hur jag ska lösa det. Har sökt runt lite på nätet, men hittar inte något som hjälper mig framåt. Vill nämligen att kvadraten ska ritas på en specifik Tabpage (i det här fallet tabPage1).

Tacksam för all form av hjälp!

anders_k Online 234
Postad: 10 dec 2023 17:17

Tänk på att du skall sätta OnPaint på sjävla TabPage, inte på TabControl eller Form

tabCtlr.Controls.Add(FirstPage);
tabCtlr.Controls.Add(SecondPage);
tabCtlr.Location = new Point(12, 26);
tabCtlr.Name = "tabCtlr";
tabCtlr.SelectedIndex = 0;
tabCtlr.Size = new Size(776, 375);
tabCtlr.TabIndex = 0;
// 
// FirstPage
// 
FirstPage.Controls.Add(label1);
FirstPage.Location = new Point(4, 28);
FirstPage.Name = "FirstPage";
FirstPage.Padding = new Padding(3);
FirstPage.Size = new Size(768, 343);
FirstPage.TabIndex = 0;
FirstPage.Text = "P1";
FirstPage.UseVisualStyleBackColor = true;
FirstPage.Paint += OnPaint;   <====================

...

// 
// SecondPage
// 
SecondPage.Controls.Add(label2);
SecondPage.Location = new Point(4, 28);
SecondPage.Name = "SecondPage";
SecondPage.Padding = new Padding(3);
SecondPage.Size = new Size(768, 343);
SecondPage.TabIndex = 1;
SecondPage.Text = "P2";
SecondPage.UseVisualStyleBackColor = true;
SecondPage.Paint += OnPaint; <=======================
Svara Avbryt
Close