Winform Counter C#

Status
Niet open voor verdere reacties.

vinzce

Nieuwe gebruiker
Lid geworden
5 jan 2014
Berichten
2
Beste mensen,

Ik ben nog maar een beginner met C# maar ik heb een probleem.
Ik wil een Windows Form Applicatie met 2 forms als je op de knop op form 1 klikt opent hij form2.
Maar ik wil dat form2 maximaal 3keer open kan.
Hoe kan dit want ik heb het geprobeerd met een if statement maar dat lukte niet.

Alvast bedankt,

Vince
 
je zal het ergens in deze richting moeten gaan , waar == null staat moet je dus aan passen naar je eigen waarde en als de form meer dan 2keer geopend is moet je een exception toevoegen

Code:
public static Form2 Instance
{
get
{
if (Form2.singleton [B][B]==[/B] null)[/B]
{
Form2.singleton = new Form2();
}
return Form2.singleton;
}
}
 
Laatst bewerkt door een moderator:
Ik heb het gebrobeert maar het lukt mij nog niet helemaal dit is mijn code:

Form1:

Code:
namespace winform
{
    public partial class Form1 : Form
    {
        bool form2Geopend = false;

        public Form1()
        {
            InitializeComponent();
        }

        private void button1_Click(object sender, EventArgs e)
        {
            if (!form2Geopend)
            {
                Form2 f2 = new Form2(this);
                f2.Show();
                form2Geopend = true;
                string data = this.textBox1.Text;
                f2.TekstInTekstBox(data);
            }
        }

        public void TekstInTekstBox(string tekst)
        {
            this.textBox1.Text = tekst;
        }

        public void ZetStatusOpUit()
        {
            this.form2Geopend = false;
        }
    }
}

[B]Form2:[/B]

namespace winform
{
    public partial class Form2 : Form
    {

        private Form1 f1;

        public Form2(Form1 doorgegevenForm)
        {
            f1 = doorgegevenForm;
            InitializeComponent();
        }

        public void TekstInTekstBox(string tekst)
        {
            this.textBox1.Text = tekst;
        }

        private void button1_Click(object sender, EventArgs e)
        {
            string dataUitForm2 = this.textBox1.Text;
            f1.TekstInTekstBox(dataUitForm2);
            f1.ZetStatusOpUit();
            this.Close();
        }
    }
}
 
Laatst bewerkt door een moderator:
Voor beide, code dient tussen codetags geplaatst te worden. Denk hier aan.
 
Als het form maar 3x zichtbaar mag zijn kun je bijvoorbeeld dit doen:

[CPP]public partial class Form1 : Form
{
private int _formCount;

public Form1()
{
InitializeComponent();
}

private void button1_Click(object sender, EventArgs e)
{
if (_formCount < 3)
{
var frm = new Form2();
frm.FormClosed += frm_FormClosed;
frm.Show();

_formCount++;
}
else
{
MessageBox.Show("max form count reached");
}
}

void frm_FormClosed(object sender, FormClosedEventArgs e)
{
_formCount--;
}
}[/CPP]
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan