Kezdőoldal » Számítástechnika » Programozás » Üdv, c# programozással...

Üdv, c# programozással kapcsolatban lenne kérdésem!?

Figyelt kérdés

Hogy lehet azt megoldani, hogy van egy osztályom ami létrehoz egy négyzetet egy gombbal amikor példányosítom, és ha a létrehozott gombra rákattintok, akkor még egy példányt létrehozzon saját magából és rajzolja ki a másik grafikai elemet is a formra (ezt végtelenszer)

Itt a programkód ez szerintem segít megérteni, hogy mi lenne a cél:


public partial class Form1 : Form

{

public Form1()

{

InitializeComponent();

}


private void Form1_Load(object sender, EventArgs e)

{

Station st = new Station(this,0,0,300,300);

}

}


public class Station

{


Form myform;

public Station(Form form, int x, int y, int height, int width)

{

Panel pnl = new Panel();

pnl.Size = new System.Drawing.Size(height, width);

pnl.Location = new Point(x, y);

pnl.BorderStyle = BorderStyle.FixedSingle;

form.Controls.Add(pnl);

Button newButton = new Button();

pnl.Controls.Add(newButton);

newButton.Size = new Size(50, 100);

newButton.Location = new Point(pnl.Width-newButton.Width - 10, ((pnl.Height-newButton.Height)/2));

myform = form;

newButton.Click += new EventHandler(Button_Click);

}


private void Button_Click(object sender, EventArgs e)

{

Station st3 = new Station(myform, 800, 0, 300, 300);

}

}



2022. nov. 29. 16:15
 1/3 anonim ***** válasza:
Ez mire jó? Ugyanoda rakod állandóan... mindig csak a legfelső fog látszani, szóval csak töltöd be a memóriát és lassítod a programot.. ez a cél?
2022. nov. 30. 10:19
Hasznos számodra ez a válasz?
 2/3 A kérdező kommentje:

Ha jobban megnézed el van tolva x irányba, természetesen ez nem a végleges és dinamikusan el lesz tolva mindig annyit, hogy ne egymásra tegye...

de egyenlőre nem tesz le még1 objektumot

2022. nov. 30. 19:05
 3/3 anonim ***** válasza:

Pedig működik. Az első panel (a gombbal) a (0,0) helyre kerül, a többi a (800,0)-ra... csak egymás alá... ezért gyakorlilag csak az első 2-t látod mindig.

Ha azt akarod, hogy az új panel a korábbiak felé kerüljön, ezt hívd meg a formra adást követően:

form.Controls.SetChildIndex(pnl, 0);


Ekkor midnig az új lesz felül (persze az ugyanúgy néz ki, mint a régi, szóval ránézésre semmmi különbség)

2022. dec. 3. 00:32
Hasznos számodra ez a válasz?

Kapcsolódó kérdések:





Minden jog fenntartva © 2024, www.gyakorikerdesek.hu
GYIK | Szabályzat | Jogi nyilatkozat | Adatvédelem | Cookie beállítások | WebMinute Kft. | Facebook | Kapcsolat: info(kukac)gyakorikerdesek.hu

A weboldalon megjelenő anyagok nem minősülnek szerkesztői tartalomnak, előzetes ellenőrzésen nem esnek át, az üzemeltető véleményét nem tükrözik.
Ha kifogással szeretne élni valamely tartalommal kapcsolatban, kérjük jelezze e-mailes elérhetőségünkön!