[c#] meerdere controls enabelen of disababelen

  • Onderwerp starter Onderwerp starter MvbC
  • Startdatum Startdatum
Status
Niet open voor verdere reacties.

MvbC

Gebruiker
Lid geworden
21 jan 2011
Berichten
9
Weet iemand hoe je meerdere buttons en menu items tegelijk kunt enabelen cq disabelen?
op dit moment doe ik iedere keer ;

button1.enabled = true;
menuitem1.enabled = true;
enz.

Om vervolgens verderop in het scirpt alles weer op false te zetten. En afhankelijk van de situatie weer aan te zetten.

Ik heb al diverse methoden geprobeerd maar heb geen oplossing gevonden.

Het lijkt me dat ik geen uniek probleem heb dus wie weet waar ik een oplossing kan vinden mag het zeggen.

Groet, Marcel
 
wat is er verkeert aan de manier die je gebruikt? zo zou ik het ik het ook doen, je kunt ze in een regel zetten met een && als scheiding maar daar schiet je toch niks mee op?
 
Hij bedoeld eigenlijk dit:
Code:
        private void checkBox6_CheckedChanged(object sender, EventArgs e)
        {
            // Wanneer je op de checkbox6drukt selecteerd het alle andere checkboxen 
            if (checkBox6.Checked == true)
            {
                if (checkBox1.Checked = true) { }
                if (checkBox2.Checked = true) { }
                if (checkBox3.Checked = true) { }
                if (checkBox4.Checked = true) { }
                if (checkBox5.Checked = true) { } 
            }
            // Als je checkbox6 deselecteerd dan deselecteerd het alle andere checkboxen 
            else
            {
                checkBox1.Checked = false;
                checkBox2.Checked = false;
                checkBox3.Checked = false;
                checkBox4.Checked = false;
                checkBox5.Checked = false;
            } 
        }

Dit heb ik gedaan met checkboxen die automatisch aangeklikt worden wanneer je chechbox6 aanvinkt, vinkt je chexbox6 uit dan gaan de andere checkboxen ook uit.

Nu kun je zelf eens een experimenteren met u buttons te enebelen en disabelen, dit is hetzelfde princiepe ;)

Mvg, Jim
 
Laatst bewerkt:
Ik weet neit zoveel over .net , maar kan je niet beter dan de buttons in een array zetten en die vervolgens helemaal op false zetten, krijg je in C++ in ieder geval mooiere code door.
 
Ja in C# gaat het ook voor de buttons enabled in array te zetten :p.
Ik had zover nog niet nagedacht ;).

Code:
            bool[] arrayke = new bool[] 
            { 
               button3.Enabled = true,
               button4.Enabled = true
            };
 
Dit begint er aardig op te lijken. Ik ben inderdaad naar een dergelijke oplossing op zoek.
Deze manier van bool array had ik inderdaad ook al geprobeerd. Ben er alleen nog niet uit hoe ik alle waardes in 1 keer van true op false kan zetten of andersom op verschillende plaatsen in mijn programma.

Waarschijnlijk op een hierop gelijkende manier;

Code:
public bool ButtonsOnOff = false;

En vervolgens hiervan een array maken en vullen zoals hiervoor beschreven.

Code:
bool[] ButtonsOnOff = new bool[15]
{
     button1.Enabled = false,
     button2.Enabled = false,
     //  ... alle buttons this way ...
     button15.Enabled = false
}

Alleen is dit niet helemaal juist zeg maar...

Marcel
 
je kan ook werken met een paneel.. Gewoon alle componenten in een paneel zetten en dan volgende code (je kan ook zonder paneel werken, maar dan geldt uw code over heel het form, dan moetje 'uwpaneel' vervangen door this.controls):
Code:
foreach(Control ctrl in uwpaneel)
{
   if(ctrl is Button)
   {
      ctrl.enabled = false;
   }
}

ps: ik heb VS nu niet openstaan maar een array van bools kan zo'n data toch nooit bevatten? Bool is true or false? Je kan beter een array van buttons maken.. Correct me if I'm wrong :o
 
Laatst bewerkt:
Dank je wel. Maar dat is niet de oplossing die ik zoek. Ik heb zowel menu items als buttons die ik in 1 keer wil enabelen cq disabelen.
Ben er wel achter dat je dit niet met een bool array kunt doen.
 
Beste MvbC,

Je kunt de controls een ''tag'' geven. Deze tag groepeert bepaalde controls, zo ver ik weet.

Geef de controls die je wilt enablen/disablen de tag ''brian'', en zet vervolgens deze functie in de code.

PHP:
        private void EnableDisable(bool en_dis, string tag)
        {
            foreach (Control c in this.Controls)
            {
                if ((string)c.Tag == tag)
                {
                    c.Enabled = en_dis;
                }
            }
        }

Roep nu deze functie als volgt aan:
PHP:
            EnableDisable(false, "brian");

Succes!
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan