Avatar billede starf Nybegynder
14. februar 2006 - 15:45 Der er 11 kommentarer og
1 løsning

gøre felter inaktiv efter værdi i combobox

Jeg har en Combobox med 2 værdier i. ordre og tilbud.
jeg vil gerne ha så hvis man vælger tilbud så bliver visse tekst felter inaktiv, hvordan gøres dette?
Avatar billede mikkel_sommer Nybegynder
14. februar 2006 - 15:48 #1
if(ComboBox.SelectedValue == order)
{
  TextBox1.Enabled = false;
}
else
{
  TextBox1.enabled = true;
}

eller omvendt
Avatar billede mikkel_sommer Nybegynder
14. februar 2006 - 15:49 #2
Hov skulle være

if(ComboBox.SelectedValue == "ordre")

i linie 1
Avatar billede mikkel_sommer Nybegynder
14. februar 2006 - 15:49 #3
og

TextBox1.Enabled = true;

i els'en

det gik vist lidt for stærkt
Avatar billede starf Nybegynder
14. februar 2006 - 16:00 #4
skal if sætningen være inde i den combobox eller bare uden for?
Avatar billede Syska Mester
14. februar 2006 - 16:13 #5
if(ComboBox.SelectedValue == "order")
{
  TextBox1.Enabled = true;
}
else
{
  TextBox1.Enabled = false;
}

Koden skal du smide i SelectedValueChange eventen på combo boxen....
( bare doubbelt klik på den i VS, så laver den selv den event du skal smide koden i )

// ouT
Avatar billede starf Nybegynder
14. februar 2006 - 16:16 #6
ok tak når jeg så gør det, så bliver hele comboBox_type.SelectedValue == "Tilbud" grøn, og der står

Warning    1    Possible unintended reference comparison; to get a value comparison, cast the left hand side to type 'string'
Avatar billede Syska Mester
14. februar 2006 - 17:27 #7
comboBox_type.SelectedValue == "Tilbud"
til:
comboBox_type.SelectedValue.ToString() == "Tilbud"
Avatar billede mikkel_sommer Nybegynder
15. februar 2006 - 01:26 #8
Hvis du har 2 textboxe:

private void comboBox1_SelectedIndexChanged(object sender, System.EventArgs e)
{
    if(comboBox1.SelectedValue.ToString() == "ordre")
    {
        textBox1.Enabled = true;
        textBox2.Enabled = false;
    }
    else
    {
        textBox1.Enabled = false;
        textBox2.Enabled = true;
    }
}

Hvis du har flere værdier:

private void comboBox1_SelectedIndexChanged(object sender, System.EventArgs e)
{
    if(comboBox1.SelectedValue.ToString() == "ordre")
    {
        textBox1.Enabled = true;
        textBox2.Enabled = false;
        textBox3.Enabled = false;
    }
    else if(comboBox1.SelectedValue.ToString() == "tilbud")
    {
        textBox1.Enabled = false;
        textBox2.Enabled = true;
        textBox3.Enabled = false;
    }
    else
    {
        textBox1.Enabled = false;
        textBox2.Enabled = false;
        textBox3.Enabled = true;
    }
}
Avatar billede starf Nybegynder
15. februar 2006 - 08:40 #9
Nu har jeg prøvet det efter et par gange og hele tiden får jeg bare "Object reference not set to an instance of an object."

og så pejer den på denne her linie: if (comboBox_type.SelectedValue.ToString() == "Tilbud")

Har tjekket om "Tilbud" er skrevet lige som i comboksen og det er det.
Avatar billede mikkel_sommer Nybegynder
15. februar 2006 - 09:26 #10
prøv uden .ToString() ved godt der fremkommer en blå streg med den besked du tidligere omtalte med det burde virke.

Alternativt kan du bruge:

if(comboBox1.SelectedItem.ToString() == "Tilbud")
Avatar billede starf Nybegynder
15. februar 2006 - 09:42 #11
Yes så virker det.. så ved jeg ik lige hvordan jeg skal dele point.
Avatar billede mikkel_sommer Nybegynder
15. februar 2006 - 12:56 #12
Ja det er jo op til dig ;-)
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