stoelkeuzescherm

Status
Niet open voor verdere reacties.

EdjeCageman

Gebruiker
Lid geworden
24 okt 2011
Berichten
273
Beste mensen,

Ik zit te denken en te denken hoe ik een stoelkeuzescherm moet gaan maken.

Nu kan ik natuurlijk gewoon een forloop maken, die per rij de stoellen maakt.
Maar nu zit ik gewoon met een zaal die niet 4-kant is. dus rij 1 heeft 15 stoelen, rij 2 heeft 15 stoellen maar staat verder naar links, rij 3 heeft 14 stoellen
Dit wil ik dus ook visualiseren op het scherm.

Kan iemand mij ff een idee geven van hoe ik dit moet doen, ik kom der echt niet uit
 
grafisch? puur text? wat wil je laten zien? Is de situatie variabel of altijd hetzelfde?

De oplossing hangt een beetje van het framework en situatie af, denk ik.
 
Het is een stoelkeuze scherm voor een zaal dus de variabelen zijn altijd gelijk.
En wat ik wil is dat je op de stoellen kan klikken en dat je die daardoor bezet maakt.

Een beetje te vergelijken met die bioscooppalen tegenwoordig waar je een film kan kopen
 
Nu ga ik dus een beetje cross doen met het verleden, zonder hetzelf te weten, schoot me net te binnen:
http://www.helpmij.nl/forum/showthread.php/696785-Snel-Keypad-maken?highlight=

Sorry mod's hoop dat jullie me vergeven.

Maar goed, toendertijd had ik een dezelfde vraag, maar die was (nog) niet opgelost toen.

Ik kan natuurlijk met een if die rijen filteren om die bepaalde rijen die anders zijn aan te passen.
Dit is wat ik nu heb:
Code:
     public void stoelenkeuzeKleinezaal()
        {
            Button zetel = new Button();
            int lengte = 100;
            int hoogte = 525;
            int knophoogte = 10;
            int knopbreedte = 10;


            totaalprijstxt = new Label();
            totaalprijstxt.Location = new Point(25, 675);
            totaalprijstxt.Size = new Size(265, 60);
            totaalprijstxt.Text = "Totaalprijs: ";
            totaalprijstxt.Font = new Font(Name, 25, FontStyle.Bold);
            totaalprijstxt.BackColor = Color.White;

            for (int rij = 1; rij < 11; rij++ )
            {
                if (rij == 1)
                {
                    for (int stoel = 1; stoel < 15; stoel++)
                    {
                        zetel.Name = "stoelnummer" + stoel;
                        zetel.Location = new Point(hoogte, lengte);
                        zetel.Size = new Size(knopbreedte, knophoogte);
                        zetel.BackColor = knopkleur;
                        lengte = lengte + 10;
                    }

                }
            }

Zoals de titel van de methode al aangeeft, dit is de kleine zaal, de groote is geen beginnen aan :shocked: zoveel stoellen. Dus ik wil even een makkelijke manier hebben.
Wat ik dus wil is dat ik makkelijk meer dan 150 stoellen op m'n scherm kan krijgen. Mijn code klopt niet, natuurlijk ik roep telkens alleen maar de zetel aan dit klopt.
Had gehoopt dat 't kon, maar ja is waar moet telkens een nieuw object aanmaken. Ik wil dit ook graag overzichtelijk doen dus ook het liefst niet dat ik telkens voor elke knop moet doen:
Code:
Button 1 = new button()
Button 2 = new button()
....
....
Button 149 = new Button()
Dat wil ik dus niet, of ontkom ik daar niet aan? Dit in de for loop laten vallen is makkelijker bedoel ik daarmee :) Als je snapt wak bedoel

Alvast bedankt voor je hulp:)
 
Laatst bewerkt:
Wat je kan doen is eenmalig de graphics maken. Gewoon een plaatje met de 150 stoelen. Vervolgens kun je een "underlay" maken en daarmee de geclickte stoel filteren. Je kunt overigens ook dynamisch buttons aanmaken met een for loop zoals je vroeg.

Maar er zijn twee zaken: de technische oplossing en de interface. De combinatie moet een beetje bepalen wat de beste oplossing is.

Een andere aanpak afgezien van kale buttons is een eigen "wrapper" class (container) schrijven die het makkelijker maakt de elementen op het scherm te zetten.
 
Ja das ook een manier, ik heb nu die knoppen uitgewerkt als button, die manier van jou kon natuurlijk ook, maar goed voor de volgende keer ^^
maar nu heb ik deze code dus:

Code:
//stoellenkeuzescherm
private Button zetel;

public void stoelenkeuzeKleinezaal()
        {
            int lengte = 100;
            int hoogte = 525;
            int knophoogte = 10;
            int knopbreedte = 10;

            for (int rij = 1; rij < 11; rij++ )
            {
                if (rij == 1)
                {
                    for (int stoel = 1; stoel < 15; stoel++)
                    {
                        zetel = new Button();
                        zetel.Name = "stoelnummer" + stoel;
                        zetel.Location = new Point(hoogte, lengte);
                        zetel.Size = new Size(knopbreedte, knophoogte);
                        zetel.BackColor = knopkleur;
                        Controls.Add(zetel);
                        hoogte = hoogte + 10;
                    }
                }
            }
}

Nu wil ik dan die knoppen verwijderen van het scherm:

Code:
        public void controlsremove()
        {
            Controls.Remove(zetel);
        }

Dit moet toch gewoon kunnen? Of doe ik iets verkeerd?
 
Het is afhankelijk of er events aan de button hangen. Anders moet je eerst de events verwijderen. Indien er geen events meer zijn kan dit wel in principe, maar zetel heeft op deze manier alleen de scope van de laatst toegevoegde button. Als je alle buttons aan wil passen moet je door de collectie lopen en button voor button weer verwijderen. Om dat eenvoudiger te maken kun je eventueel een "panel" gebruiken en de controls toevoegen op het panel. Vervolgens kun je dan zeer eenvoudig alles op het panel weer verwijderen.
 
Gewoon zoals Wampier al zegt iets als:

[cpp]
// Stoel.cs
public class Stoel : Button
{
public Stoel(int stoelnr, Point locatie, Size grootte, Color achtergrondkleur)
{
this.Name = "Stoelnummer" + stoelnr.ToString();
this.Location = locatie;
this.Size = grootte;
this.BackColor = achtergrondkleur;
}
}

// in je form
private List<Stoel> stoelen;
// ...
public void StoelenKeuzeKleineZaal()
{
int lengte = 100;
int hoogte = 525;
int knophoogte = 10;
int knopbreedte = 10;

for (int rij = 1; rij <= 10; rij++)
{
// ...
Stoel stoel = new Stoel(stoelnr, new Point(hoogte, lengte), new Size(knopbreedte, knophoogte), knopkleur);
stoelen.Add(stoel);
Controls.Add(stoel);
}
}
// ...
public void RemoveControls()
{
foreach (Stoel stoel in stoelen) Controls.Remove(stoel);
}
[/cpp]
 
nice nice, goede tip van je Wampier, had ik zelf ook kunnen bedenken, had me een hoop typwerk kunnen schelen, ach zo leert men:p voor de volgende x.

Tnx mensies
 
Oke ik heb het helemaal veranderd, ik heb er nu image's van gemaakt ipv button's, ziet er nu veel beter uit dan al die knopjes.

scaled.php


Nu moet er dus nog wel een mouseeventargs aan gehangen worden zodat ik weet welke stoel er geklikt wordt.
Ik heb het al een x eerder gedaan maar toen gebruikte ik een "Rectangle" voor dat plaatje waardoor ik kon zien welke er werdt aangeroepen.
Nu maak ik telkens gebruik van dezelfde, dus dit keer gaat het niet op...:(

Code:
public void Paintrijen(object sender, System.Windows.Forms.PaintEventArgs e)
            {
                Graphics g = e.Graphics;
                //int x = 25;
                //int y = 65;
                int width = 30;
                int height = 30;
                //tekenkleinerij(x, y, width, height, g);
                Parallel.For(0, 10, i =>
                    {

                        if (i == 0)
                        {
                            //x as (horizontaal) 1 stoel = 30 ruimte tussen de stoellen = 2
                            int x = 25 + 64;
                            //y as (verticaal) = elke rij + 30 + gangpad (5)
                            int y = 65;
                            for (int r = 0; r < 13; r++)
                            {
                                tekenkleinerij(x, y, width, height, g);
                                x = x + 32;
                            }
                        }
                        if (i == 1)
                        {
                            //x as (horizontaal) 1 stoel = 30 ruimte tussen de stoellen = 2
                            int x = 25 + 96;
                            //y as (verticaal) = elke rij + 30 + gangpad (5)
                            int y = 65 + (35*i);
                            for (int r = 0; r < 11; r++)
                            {
                               tekenkleinerij(x, y, width, height, g);
                               x = x + 32;
                            }
                        }
                        if (i == 2)
                        {
                            //x as (horizontaal) 1 stoel = 30 ruimte tussen de stoellen = 2
                            int x = 25 + 64;
                            //y as (verticaal) = elke rij + 30 + gangpad (5)
                            int y = 65 + (35 * i);
                            for (int r = 0; r < 12; r++)
                            {
                                tekenkleinerij(x, y, width, height, g);
                                x = x + 32;
                            }
                        }
                        if (i == 3)
                        {
                            //x as (horizontaal)
                            int x = 25 + 64;
                            //y as (verticaal) = elke rij + 30 + gangpad (5)
                            int y = 65 + (35 * i);
                            for (int r = 0; r < 13; r++)
                            {
                                tekenkleinerij(x, y, width, height, g);
                                x = x + 32;
                            }
                        }
                        if (i == 4)
                        {
                            //x as (horizontaal)
                            int x = 25 + 32;
                            //y as (verticaal) = elke rij + 30 + gangpad (5)
                            int y = 65 + (35 * i);
                            for (int r = 0; r < 14; r++)
                            {
                                tekenkleinerij(x, y, width, height, g);
                                x = x + 32;
                            }
                        }
                        if (i == 5)
                        {
                            //x as (horizontaal)
                            int x = 25 + 32;
                            //y as (verticaal) = elke rij + 30 + gangpad (5)
                            int y = 65 + (35 * i);
                            for (int r = 0; r < 13; r++)
                            {
                                tekenkleinerij(x, y, width, height, g);
                                x = x + 32;
                            }
                        }
                        if (i == 6)
                        {
                            //x as (horizontaal)
                            int x = 25 + 32;
                            //y as (verticaal) = elke rij + 30 + gangpad (5)
                            int y = 65 + (35 * i);
                            for (int r = 0; r < 13; r++)
                            {
                                tekenkleinerij(x, y, width, height, g);
                                x = x + 32;
                            }
                        }
                        if (i == 7)
                        {
                            //x as (horizontaal)
                            int x = 25;
                            //y as (verticaal) = elke rij + 30 + gangpad (5)
                            int y = 65 + (35 * i) + 15;
                            for (int r = 0; r < 15; r++)
                            {
                                tekenkleinerij(x, y, width, height, g);
                                x = x + 32;
                            }
                        }
                        if (i == 8)
                        {
                            //x as (horizontaal)
                            int x = 25;
                            //y as (verticaal) = elke rij + 30 + gangpad (5)
                            int y = 65 + (35 * i) + 15;
                            for (int r = 0; r < 16; r++)
                            {
                                tekenkleinerij(x, y, width, height, g);
                                x = x + 32;
                            }
                        }
                        if (i == 9)
                        {
                            //x as (horizontaal)
                            int x = 25 + 32;
                            //y as (verticaal) = elke rij + 30 + gangpad (5)
                            int y = 65 + (35 * i) + 15;
                            for (int r = 0; r < 15; r++)
                            {
                                tekenkleinerij(x, y, width, height, g);
                                x = x + 32;
                            }
                        }
                    });
            }

Code:
            public void tekenkleinerij(int x, int y, int width, int height, Graphics g)
            {
                lock (this)
                {
                    Rectangle stoel = new Rectangle(x, y, width, height);
                    Image imgstoel = Image.FromFile("../../Image/stoelVrij.png");

                    g.DrawImage(imgstoel, stoel);
                    if (isImageClicked == true)
                    {
                        Pen outline = new Pen(Color.Black, 2);
                        switch (imageClicked)
                        {
                            case 0:
                                g.DrawRectangle(outline, stoel);
                                break;
                        }
                    }
                }
            }

Ik wil eruit halen welke rij en welke stoel er zijn geklikt, met de buttons ging dit makkelijk kon je gewoon:
button.name = rijnr + "-" + stoelnr
En dan was je klaar, kon je dat weer uitlezen. Is hiervoor ook zo'n mogelijkheid?
Heeft er iemand een ideetje?
 
Laatst bewerkt:
Je kan nog steeds gewoon hetzelfde principe gebruiken als met de 'button' hoor. Iets als:

[cpp]
// stoel.cs
public class Stoel : PictureBox
{
public int Nr { get; set; }

public Stoel(int nr, int x, int y, int w, int h, Image afbeelding)
{
Nr = nr;
Left = x;
Top = y;
Height = h;
Width = w;
Image = afbeelding;
}
}

// in je form
private List<Stoel> stoelen; // deze vullen met alle gewenste stoelen (zie constructor van Stoel)

// ...

foreach (Stoel stoel in stoelen)
{
stoel.Click += new EventHandler(Stoel_Click);
Controls.Add(stoel);
}

// ...

private void Stoel_Click(object sender, EventArgs e)
{
Stoel stoel = (Stoel)sender; // stoel.Nr geeft je nu het nummer van de stoel
}
[/cpp]

Als je het toch op jouw manier wenst te doen, dan moet je het 'MouseClick' event van je form gebruiken om te kijken of de locatie van de muis zich binnen een van je stoelen bevindt. Iets als:

[cpp]
private void Stoel_MouseClick(object sender, MouseEventArgs e)
{
foreach (Stoel stoel in stoelen)
{
RectangleF rec = new RectangleF(new PointF(stoel.Left, stoel.Top), new Size(stoel.Width, stoel.Height));

if (rec.Contains(e.Location))
{
// ...
}

}
}
[/cpp]
 
Ow nice!!! Tnx :) Weer wat geleerd vandaag

Weet iemand ook waarom als er op de afbeelding wordt geklikt dat de afbeelding niet veranderd?

Code:
            public void stoellenkleinezaal(int rij, int nr, int personen)
            {
                Console.WriteLine("Opbouw");
                int width = 30;
                int height = 30;
                Stoellenevents stoelevent = new Stoellenevents();
                Image imgVrijeStoel = Image.FromFile("../../Image/stoelVrij.png");
                Image imgSelectie = Image.FromFile("../../Image/stoelGeselecteerd.png");
                Parallel.For(0, 10, r =>
                {
                    Console.WriteLine("De rijen bouwen");
                    if (r == 0)
                    {
                        //x as (horizontaal) 1 stoel = 30 ruimte tussen de stoellen = 2
                        int x = 25 + 64;
                        //y as (verticaal) = elke rij + 30 + gangpad (5)
                        int y = 65;
                        for (int s = 0; s < 13; s++)
                        {
                            Console.WriteLine("De stoellen opbouwen " + s + " " + nr + " " + r + " " + rij);
                            if (s.Equals(nr) && r.Equals(rij))
                            {
                                Console.WriteLine("Ja ik ben gelijk");
                                stoelevent.setstoellen(s, r, x, y, width, height, imgSelectie);
                            }
                            else
                            {
                                stoelevent.setstoellen(s, r, x, y, width, height, imgVrijeStoel);
                            }
                            x = x + 32;
                        }
                    }
                    if (r == 1)
                    {
                        //x as (horizontaal) 1 stoel = 30 ruimte tussen de stoellen = 2
                        int x = 25 + 96;
                        //y as (verticaal) = elke rij + 30 + gangpad (5)
                        int y = 65 + (35 * r);
                        for (int s = 0; s < 11; s++)
                        {
                            Console.WriteLine("De stoellen opbouwen " + s + " " + nr + " " + r + " " + rij);
                            if (s.Equals(nr) && r.Equals(rij))
                            {
                                Console.WriteLine("Ja ik ben gelijk");
                                stoelevent.setstoellen(s, r, x, y, width, height, imgSelectie);
                            }
                            else
                            {
                                stoelevent.setstoellen(s, r, x, y, width, height, imgVrijeStoel);
                            }
                            x = x + 32;
                        }
                    }
                    if (r == 2)
                    {
                        //x as (horizontaal) 1 stoel = 30 ruimte tussen de stoellen = 2
                        int x = 25 + 64;
                        //y as (verticaal) = elke rij + 30 + gangpad (5)
                        int y = 65 + (35 * r);
                        for (int s = 0; s < 12; s++)
                        {
                            stoelevent.setstoellen(s + 1, r, x, y, width, height, imgVrijeStoel);
                            x = x + 32;
                        }
                    }
                    if (r == 3)
                    {
                        //x as (horizontaal)
                        int x = 25 + 64;
                        //y as (verticaal) = elke rij + 30 + gangpad (5)
                        int y = 65 + (35 * r);
                        for (int s = 0; s < 13; s++)
                        {
                            stoelevent.setstoellen(s + 1, r, x, y, width, height, imgVrijeStoel);
                            x = x + 32;
                        }
                    }
                    if (r == 4)
                    {
                        //x as (horizontaal)
                        int x = 25 + 32;
                        //y as (verticaal) = elke rij + 30 + gangpad (5)
                        int y = 65 + (35 * r);
                        for (int s = 0; s < 14; s++)
                        {
                            stoelevent.setstoellen(s + 1, r, x, y, width, height, imgVrijeStoel);
                            x = x + 32;
                        }
                    }
                    if (r == 5)
                    {
                        //x as (horizontaal)
                        int x = 25 + 32;
                        //y as (verticaal) = elke rij + 30 + gangpad (5)
                        int y = 65 + (35 * r);
                        for (int s = 0; s < 13; s++)
                        {
                            stoelevent.setstoellen(s + 1, r, x, y, width, height, imgVrijeStoel);
                            x = x + 32;
                        }
                    }
                    if (r == 6)
                    {
                        //x as (horizontaal)
                        int x = 25 + 32;
                        //y as (verticaal) = elke rij + 30 + gangpad (5)
                        int y = 65 + (35 * r);
                        for (int s = 0; s < 13; s++)
                        {
                            stoelevent.setstoellen(s + 1, r, x, y, width, height, imgVrijeStoel);
                            x = x + 32;
                        }
                    }
                    if (r == 7)
                    {
                        //x as (horizontaal)
                        int x = 25;
                        //y as (verticaal) = elke rij + 30 + gangpad (5)
                        int y = 65 + (35 * r) + 15;
                        for (int s = 0; s < 15; s++)
                        {
                            stoelevent.setstoellen(s + 1, r, x, y, width, height, imgVrijeStoel);
                            x = x + 32;
                        }
                    }
                    if (r == 8)
                    {
                        //x as (horizontaal)
                        int x = 25;
                        //y as (verticaal) = elke rij + 30 + gangpad (5)
                        int y = 65 + (35 * r) + 15;
                        for (int s = 0; s < 16; s++)
                        {
                            stoelevent.setstoellen(s + 1, r, x, y, width, height, imgVrijeStoel);
                            x = x + 32;
                        }
                    }
                    if (r == 9)
                    {
                        //x as (horizontaal)
                        int x = 25 + 32;
                        //y as (verticaal) = elke rij + 30 + gangpad (5)
                        int y = 65 + (35 * r) + 15;
                        for (int s = 0; s < 15; s++)
                        {
                            stoelevent.setstoellen(s + 1, r, x, y, width, height, imgVrijeStoel);
                            x = x + 32;
                        }
                    }
                });

                foreach (Kassasysteem.Controll.Stoellenevents.Stoellen stoel in stoelevent.getLijst())
                {
                    stoel.Click += new EventHandler(Stoel_Click);
                    zalenpanel.Controls.Add(stoel);
                }
            }

Code:
public void Stoel_Click(object sender, System.EventArgs e)
            {
                Kassasysteem.Controll.Stoellenevents.Stoellen stoel = (Kassasysteem.Controll.Stoellenevents.Stoellen)sender;
                Console.WriteLine("Rijnr: " + stoel.Rij);
                Console.WriteLine("Stoelnr: " + stoel.Nr);

                stoellenkleinezaal(stoel.Rij, stoel.Nr, 0);
            }

Rij 1 (0 volgens de lijst) en/of 2 (1 volgens de lijst) zouden een andere afbeelding moeten kunnen krijgen als er op de lijst wordt geklikt. Hij haalt netjes de goede rijen en stoelnr's op. Hij geeft ook aan "ik ben gelijk" bij de geklikte stoel, maar de afbeelding wijzigt niet:S.

Terwijl als ik deze methode de 1ste keer aanroep wordt heeft de methode stoelnr 0 en rijnr 0, de 1ste stoel krijgt wel de andere kleur :confused:

Ik heb ook al geprobeerd om het panel op null te zetten en deze opnieuw op te bouwen, maar dat doet ie niet, dus ben ik nou zo kippig?:S


Fixed:
Code:
                foreach (Kassasysteem.Controll.Stoellenevents.Stoellen ds in stoelevent.getLijst())
                {
                    zalenpanel.Controls.Remove(stoel);
                }
                Controls.Remove(zalenpanel);
                zalenpanel = null;
                
                zalenpanel = new Panel();
                zalenpanel.Location = new Point(525, 25);
                zalenpanel.Size = new Size(800, 510);
                Controls.Add(zalenpanel);

                stoellenkleinezaal(stoel.Rij, stoel.Nr, 0);
            }

ff toegevoegd bij de Stoel_Click
Alleen hij verwijdert de stoel die aangeklikt wordt, en dan 3 sec later telkens zoiets verschijnt de andere, als er iemand een "nettere" oplossing heeft graag, eventueel als alles gewoon 3 sec verdwijnt vind ik ook niet erg, liever zelfs:)
 
Laatst bewerkt:
Je kan toch ook alleen de afbeelding zelf wijzigen. Iets als:

[cpp]
// stoel.cs
public class Stoel : PictureBox
{
public int Nr { get; set; }
public bool IsGeklikt { get; set; }

public Stoel(int nr, int x, int y, int w, int h, Image afbeelding)
{
Nr = nr;
Left = x;
Top = y;
Height = h;
Width = w;
Image = afbeelding;
}
}

// in je form
// ...
public void Stoel_Click(object sender, System.EventArgs e)
{
Stoel stoel = (Stoel)sender;
stoel.IsGeklikt = !stoel.IsGeklikt;
stoel.Image = (stoel.IsGeklikt ? Properties.Resources.Stoel1 : Properties.Resources.Stoel2);
Refresh();
}
[/cpp]
 
Je kan toch ook alleen de afbeelding zelf wijzigen. Iets als:

[cpp]
// stoel.cs
public class Stoel : PictureBox
{
public int Nr { get; set; }
public bool IsGeklikt { get; set; }

public Stoel(int nr, int x, int y, int w, int h, Image afbeelding)
{
Nr = nr;
Left = x;
Top = y;
Height = h;
Width = w;
Image = afbeelding;
}
}

// in je form
// ...
public void Stoel_Click(object sender, System.EventArgs e)
{
Stoel stoel = (Stoel)sender;
stoel.IsGeklikt = !stoel.IsGeklikt;
stoel.Image = (stoel.IsGeklikt ? Properties.Resources.Stoel1 : Properties.Resources.Stoel2);
Refresh();
}
[/cpp]

Hoho :| Wacht ff niet te snel, deze heb ik ff niet, even uitleg nodig alstublieft

Code:
public void Stoel_Click(object sender, System.EventArgs e)
{
//Haalt de informatie op uit de sender en maakt er een object van
    Stoel stoel = (Stoel)sender;
//Controlleerd op welke stoel er is geklikt
    stoel.IsGeklikt = !stoel.IsGeklikt;
//???? Als er op de stoel geklikt is verandert hij de stoel van het standaardplaatje naar het andere plaatje en/of terug                
    stoel.Image = (stoel.IsGeklikt ? Properties.Resources.Stoel1 : Properties.Resources.
//???? Lijkt me dat hij de geklikte knop opnieuw laadt
    Refresh();

Dus even graag uitleg over die laatste 2 aub.

Mijn code:
Code:
            public void Stoel_Click(object sender, System.EventArgs e)
            {
                Stoellenevents.Stoellen stoel = (Stoellenevents.Stoellen)sender;
                stoel.IsGeklikt = !stoel.IsGeklikt;
                Image imgVrijeStoel = Image.FromFile("../../Image/stoelVrij.png");
                Image imgSelectie = Image.FromFile("../../Image/stoelGeselecteerd.png");
                stoel.Image = (stoel.IsGeklikt ? imgSelectie : imgVrijeStoel);
                Refresh();

Daarnaast moet er een tellertje komen, er zijn namelijk X aantal personen, die dus X aantal stoellen bezetten dus als er meer stoellen worden geselecteerd dan X moet het programma niks doen, dit kan makkelijk met een If, maar de personen moeten ook van gedachte kunnen veranderen, dus een andere stoel mogen kiezen. En ik kan me echt niet bedenken hoe ik die moet doen :|
 
Laatst bewerkt:
Oke ik heb hem nu helemaal naar mijn hand gezet :) En ondertussen de rest van het programma ook afgemaakt:p zit nu te controleren naar Bugs, nu zit ik al een hele dag naar m'n code te kijken maar snap 'm niet.
Ik voer dus een x aantal personen in, deze wijs ik de verschillende stoelen aan, ik heb iedereen een stoel aangeboden. Klik ik op een volgende stoel mag niet (heb nl geen personen hiervoor) klik ik nog een x op dezelfde stoel veranderen mijn beschikbare personen plots in 1 :eek: kan ik toch nog een stoel aanwijzen.

Wat gaat er fout???:confused:

Code:
                public void Stoel_Click(object sender, System.EventArgs e)
                {
                    int personen = verkoop.getAantalpersonen();
                    Stoellenevents.Stoellen stoel = (Stoellenevents.Stoellen)sender;
                    stoel.IsGeklikt = !stoel.IsGeklikt;
                    personen = (stoel.IsGeklikt ? personen-1 : personen+1);
                    Console.WriteLine(personen);
                    if (personen >= 0)
                    {
                        Image imgVrijeStoel = Image.FromFile("../../Image/stoelVrij.png");
                        Image imgSelectie = Image.FromFile("../../Image/stoelGeselecteerd.png");
                        stoel.Image = (stoel.IsGeklikt ? imgSelectie : imgVrijeStoel);
                        //Refresh();
                    }
                    else
                    {
                        Console.WriteLine("Max stoellen geselecteerd");
                        personen = 0;
                    }
                    verkoop.setAantalpersonen(personen);
                    aantalpersonen.Text = verkoop.getAantalpersonen().ToString();
                    Refresh();
                }
 
Nevermind! Door in de else loop nog de waarde van stoel.IsGeklikt te wijzigen is het opgelost :thumb:
 
Beste EdjeCageman,

Ik zag je vraag over het stoelenreserveringsplan. Nu ben ik zelf totaal niet in staat om zoiets te maken. Zou je eventueel ook bereidt zijn om dit te posten op het forum. Heb zelf te maken met zaal/stoel reserveringen en denk dat dit dit enorm handig zou zijn. Als je het liever niet verder beschikbaar stel begrijp ik dit ook wel. So no hard feelings. Thanks Friend
 
Beste EdjeCageman,

Ik zag je vraag over het stoelenreserveringsplan. Nu ben ik zelf totaal niet in staat om zoiets te maken. Zou je eventueel ook bereidt zijn om dit te posten op het forum. Heb zelf te maken met zaal/stoel reserveringen en denk dat dit dit enorm handig zou zijn. Als je het liever niet verder beschikbaar stel begrijp ik dit ook wel. So no hard feelings. Thanks Friend

@Friend:
Het stoelenscherm is onderdeel van een gehele systeem en is niet simpel 1 onderdeel, dus ik kan de code wel posten maar je zal er weinig aan hebben denk. Mijn code staat voor de rest hierboven al gepost, en niet in staat zijn is meer uit luiheid dan dat je het niet kan :P
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan