27. juli 2005 - 15:24
Der er
14 kommentarer og 1 løsning
Array af pictureBox'es
Hej Hvordan laver jeg et array indeholdende f.eks. 4 pictureBox'es i c#? Tak AHR
Annonceindlæg fra Computerworld
AI-agenterne kommer vrimlende
Virksomheder er på vej fra store sprogmodeller, der svarer på spørgsmål, til AI-agenter, der kan udføre opgaver på egen hånd. Det gør teknologien mere nyttig – og langt mere risikabel.
Lige ud af landevejen. PictureBox[] pb = new PictureBox[4]; for(int i = 0; i < pb.Length; i++) { pb[i] = new PictureBox(); }
et eksempel med CheckBox: using System; using System.Drawing; using System.Windows.Forms; namespace DefaultNamespace { public class MainForm : Form { private CheckBox[] chkbox; private Button calc; public MainForm() { InitializeComponent(); } [STAThread] public static void Main(string[] args) { Application.Run(new MainForm()); } private void InitializeComponent() { calc = new Button(); chkbox = new CheckBox[64]; for(int i = 0; i < chkbox.Length; i++) { chkbox[i] = new CheckBox(); } SuspendLayout(); for(int i = 0; i < chkbox.Length; i++) { chkbox[i].Location = new Point(400 - 50 * (i % 8), 225 - 25 * (i / 8)); chkbox[i].Text = "bit " + i; } calc.Location = new Point(50, 300); calc.Size = new Size(400, 25); calc.Text = "Beregn integer fra bits"; calc.Click += new EventHandler(CalcClick); ClientSize = new Size(500, 350); for(int i = 0; i < chkbox.Length; i++) { Controls.Add(chkbox[i]); } Controls.Add(calc); Text = "Main Form"; ResumeLayout(false); } void CalcClick(object sender, EventArgs e) { long res = 0; for(int i = 0; i < chkbox.Length; i++) { res = 2 * res + (chkbox[63-i].Checked ? 1 : 0); } MessageBox.Show("Integer = " + res); } } }
Men hvad hvis mine pictureBoxes allerede eksisterer og kan ses i min form. kan man så lave noget lignende dette: PictureBox[] pb = new PictureBox[4]; pb[0] = og så en reference til pictureBox1 som eksisterer
et alternativ kunne muligvis være at iterere over alle Controls og finde dine PictureBox'e - det afhænger lidt af hvad du skal bruge det til
Hvordan laver jeg denne reference? pb[0] = og så en reference til pictureBox1 som eksisterer
lige ud af landevejen pb[0] = pictureBox1;
Prøver lige og vender tilbage. Men det er jo rigtigt man bruger jo ikke & og * i c#
de var ikke engang nødvendige i C++ fordi PictureBox[] pb = new PictureBox[4]; PictureBox pictureBox1 = new PictureBox(); pb[0] = pictureBox1; jo i C++ er PictureBox **pb = new (PictureBox *)[4]; PictureBox *pictureBox1 = new PictureBox(); pb[0] = pictureBox1;
27. juli 2005 - 18:15
#10
og et svar i formodning om at du får det til at virke
27. juli 2005 - 22:18
#11
Tak det virker arne. Har bare et sidste spg. hvis du kan svare. Hvis man ikke opererer med referencer i c# sender man så f.eks. objekter til funktioner i stedet for en reference. Det må da være meget ressourcekrævende.
27. juli 2005 - 22:30
#12
omvendt en C# reference er en C++ pointer så man sender altid en pointer over - man kan ikke sende objektet over
27. juli 2005 - 23:14
#13
argh, og en c# reference laves sådanne eller void test(ref xxx) laves en reference ikke med ref i c#?
27. juli 2005 - 23:20
#14
C#: void test(X x) er C++: void test(X *x) C#: void test(ref X x) er C++: void test(X& *x)
27. juli 2005 - 23:22
#15
super tak
IT-kurser om Microsoft 365, sikkerhed, personlig vækst, udvikling, digital markedsføring, grafisk design, SAP og forretningsanalyse.