Avatar billede fila Nybegynder
11. august 2005 - 10:04 Der er 6 kommentarer og
1 løsning

Hvordan overfører man en variabel fra en form til en anden

Arbejder i Visual Studio 2003 .NET.

Mit problem består i at jeg skal have en variabel med over i en ny form fx Form2 til Form3
Avatar billede anadan Nybegynder
11. august 2005 - 10:07 #1
Hvis du opretter Form3 fra Form2, kan du bare smide den med i constructoren.

(fra Form2):
Form3 form = new Form3(minVariabel);

(fra Form3):
int minVariabel;
public Form3(int minVariabel){
  this.minVariabel = minVariabel;
}
Avatar billede fila Nybegynder
11. august 2005 - 10:17 #2
hmm virker ikke:

(form2)
Form3 f3 = new Form3(readar);
f3.Show();

(form3)
int readar;
public Form3(int readar)
{
this.readar = readar;
}

jeg har bare skiftet din variabel ud med min men den brokker sig over public
Avatar billede anadan Nybegynder
11. august 2005 - 10:20 #3
brokker sig over public?? Hvis du mener ved public Form3(int reader), kan det være fordi at din klasse ikke hedder Form3. Det skal den gøre, ellers kan du ikke lave en constructor der hedder Form3. Prøv at sende lidt mere kode..
Avatar billede arne_v Ekspert
11. august 2005 - 10:32 #4
et simpelt eksempel på hvordan man kan sende en referce til main form med
over i sub form constructor:

using System;
using System.Drawing;
using System.Windows.Forms;

namespace E
{
    public class MainForm : Form
    {
        private Button button1;
        private TextBox textBox1;
        public MainForm()
        {
            InitializeComponent();
        }
        private void InitializeComponent()
        {
            textBox1 = new TextBox();
            button1 = new Button();
            SuspendLayout();
            textBox1.Multiline = true;
            textBox1.Location = new Point(50, 50);
            textBox1.Size = new Size(200, 50);
            button1.Location = new Point(50, 150);
            button1.Size = new Size(200, 50);
            button1.Text = "Åben sub form";
            button1.Click += new EventHandler(Button1Click);
            ClientSize = new Size(300, 250);
            Controls.Add(button1);
            Controls.Add(textBox1);
            Text = "Main Form";
            ResumeLayout(false);
        }
        public string TB
        {
            get
            {
                return textBox1.Text;
            }
        }
        void Button1Click(object sender, System.EventArgs e)
        {
            SubForm sf = new SubForm(this);
            sf.ShowDialog();
        }
    }
    public class SubForm : Form
    {
        private MainForm mf;
        private TextBox textBox1;
        public SubForm(MainForm mf)
        {
            this.mf = mf;
            InitializeComponent();
        }
        private void InitializeComponent()
        {
            textBox1 = new TextBox();
            SuspendLayout();
            textBox1.Multiline = true;
            textBox1.Location = new Point(50, 50);
            textBox1.Size = new Size(200, 50);
            textBox1.Text = mf.TB;
            ClientSize = new Size(300, 150);
            Controls.Add(textBox1);
            Text = "Sub Form";
            ResumeLayout(false);
        }
    }
    public class TestClass
    {
        [STAThread]
        public static void Main(string[] args)
        {
            Application.Run(new MainForm());
        }
    }
}
Avatar billede fila Nybegynder
11. august 2005 - 10:51 #5
Fandt ud af det :) glemte bare lige at skrive det
Avatar billede fila Nybegynder
11. august 2005 - 10:51 #6
Tak for hjælpen hvis i vil have points så skriv et svar
Avatar billede anadan Nybegynder
11. august 2005 - 10:52 #7
svar
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
IT-kurser om Microsoft 365, sikkerhed, personlig vækst, udvikling, digital markedsføring, grafisk design, SAP og forretningsanalyse.

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester