Avatar billede starf Nybegynder
20. juni 2006 - 10:26 Der er 8 kommentarer og
1 løsning

lægge 2 tal sammen i et 3 felt

Hey

jeg har 3 textboxes, jeg har brug for textbox1 og textbox2 automatisk ganger hinanden og viser resultatet i textbox3, når man begynder at skrive noget i textbox2, hvordan gør man det?
Avatar billede daxiez Nybegynder
20. juni 2006 - 10:36 #1
double click i din tekstbox2 så den laver en
private void textBox2_TextChanged(object sender, EventArgs e)
{

}

her i skriver du :

try
  {
  double result = Convert.ToDouble(textBox1.Text) * Convert.ToDouble(textBox2.Text);
  textBox3.Text = result.ToString(); ;
  }
  catch { }
  }


altså samlet :

private void textBox2_TextChanged(object sender, EventArgs e)
{
  try
  {
  double result = Convert.ToDouble(textBox1.Text) * Convert.ToDouble(textBox2.Text);
  textBox3.Text = result.ToString();
  }
  catch { }
}
Avatar billede starf Nybegynder
20. juni 2006 - 10:51 #2
perfekt smid et svar :) mange tak
Avatar billede uefa Nybegynder
20. juni 2006 - 10:53 #3
> daxiez

Hvis konverteringen fejler kastes der en exception, som du ikke håndterer?
Var det ikke kønnere hvis man brugte en TryParse så man ikke fik excptions...

Hvad med:

double tal1, tal2, resultat;

if (double.TryParse(textBox1.Text, out tal1) && double.TryParse(textBox2.Text, out tal2))
{
  resultat = tal1 * tal2;
  textBox3.Text = resultat.ToString();
}
else
{
  MessageBox.Show("Du skal indtaste to tal.", "Fejl", MessageBoxButtons.OK, MessageBoxIcon.Error);
  // Og hvad man ellers kan finde på :)
}
Avatar billede daxiez Nybegynder
20. juni 2006 - 10:55 #4
Ved det godt, men lød ikke lige frem som om det var nødvendigt med exception handling... derfor jeg bare lavede det simpelt !

SVAR !)
Avatar billede nielle Nybegynder
20. juni 2006 - 10:59 #5
Der er dog ingen grund til at have den samme funktionalitet i hver TextChanged-eventhandler:

        private void textBox1_TextChanged(object sender, EventArgs e)
        {
            Update_textBox3();
        }

        private void textBox2_TextChanged(object sender, EventArgs e)
        {
            Update_textBox3();
        }

        private void Update_textBox3()
        {
            try
            {
                double result = Convert.ToDouble(textBox1.Text) * Convert.ToDouble(textBox2.Text);
                textBox3.Text = result.ToString();
            }
            catch { }
        }
Avatar billede uefa Nybegynder
20. juni 2006 - 11:05 #6
Nille >

Min fejl... Jeg skal lære at læse spørgsmålet :)
Avatar billede hmortensen Nybegynder
20. juni 2006 - 16:41 #7
nielle, hvorfor så ikke blot bruge samme event for begge controller.

textBox1.TextChanged += new EventHandler(textBox_TextChanged);
textBox2.TextChanged += new EventHandler(textBox_TextChanged);

private void textBox_TextChanged(object sender, EventArgs e)
{
}
Avatar billede nielle Nybegynder
20. juni 2006 - 17:29 #8
Bestemt også en mulighed. :^)

Det er en lille smule sværer at læse koden for hvilke TextBox'e som eventen høre til under, og det kunne tænkes at funktionen også skulle kunne kaldes andre steder fra.
Avatar billede hmortensen Nybegynder
20. juni 2006 - 17:33 #9
Ja, kommer jo an på situationen :)
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

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



Seneste spørgsmål Seneste aktivitet
I går 20:46 opkaldside Af hagbartm i Mobiltelefoner
I går 16:05 win 10 vil ikke boote Af bb69 i Windows
I går 11:20 Lenovo x390 Af tobberjas i PC
I går 10:14 Alder i Excel Af Nanarsi i Excel
I går 09:00 Flere linier på faneblad Af Peder Lund Nielsen i Excel