Gå til innhold

C#: Hvordan få user input med textbox


Anbefalte innlegg

Skrevet

Hei, Som topic sier lurer jeg på hvordan jeg får hentet frem user input fra en textbox, tenkte at det ble noe som

 

if (textbox1 == "ole123") {

Message.show("Hey");

}

 

men får ikke lov til å benytte == når jeg skal hente fra textbox, her er error:

Error 1 Operator '==' cannot be applied to operands of type 'System.Windows.Forms.TextBox' and 'string' C:\Documents and Settings\am\Lokale innstillinger\Programdata\Temporary Projects\WindowsApplication1\Form1.cs 20 17 WindowsApplication1

Videoannonse
Annonse
Skrevet

Du sammenligner et TextBox objekt med en strenge, det er antakelig ikke definert en operator == for denne sammenligningen.

Du kan antakelig gjøre noe á la

if(textbox1.Text == "ole123") {
(...)
}

alternativt er sikkert ToString() overloaded til å returnere Text attributen, så du muligens kan gjøre slik:

if(textbox1.ToString() == "ole123") {
(...)
}

 

 

 

P.S

Dette er bare gjetting fra meg da jeg ikke har drevet noe særlig med C# ennå (sitter for det meste med Java i disse dager)

Skrevet (endret)

For å få ut teksten i en textbox, bruk property'en Text (metodikken som Nazgul bruker er ikke å anbefale!):

 

if(textbox1.Text == "ole123") {
   (...)
}

Endret av Oracel
Skrevet

Synes koden din ser bemerkelsesverdig lik min ut, hvor ligger egentlig forskjellen?

 

Jeg skrev da inderlig at den andre metoden antakelig også fungerte.

  • 2 måneder senere...
Skrevet

Nytt i .net er at kontroller ikke lenger har default property text. Du må derfor skrive .Text for å finne teksten.

 

I vb 6.0 var det enklere.

Skrevet
Uansett er det ikke == for å sammenligne to tekster.

Joda, i C# kan du bruke == for å sammenligne to tekster: String Equality Operator

 

Dersom du bruker Reflector så ser du at operatoren == bruker metoden Equal slik:

public static bool operator ==(string a, string b)
{
     return string.Equals(a, b);
}

 

Øyvind

Skrevet

Uansett mener jeg at det er ikke måten å gjøre det på, å bruke overloadede operatorer. Hvorfor skal du kjøre en funksjon som ikke gjør annet enn å kjøre den opprinnelige funksjonen, liksom?

Skrevet

Vi behøver ikke ta en diskusjon rundt operator overloading her, men hovedargumentet mitt for å kunne bruke det er bedre lesbarhet. Du ser det lettere i f.eks. en Matrix-klasse med dotprodukt:

 

Uten operator overloading:

Matrix result = mat1.DotProduct(mat2).DotProduct(mat3);

 

Med operator overloading:

Matrix result = mat1 * mat2 * mat3;

 

Men det er jo selvfølgelig en smakssak :)

 

Øyvind

Opprett en konto eller logg inn for å kommentere

Du må være et medlem for å kunne skrive en kommentar

Opprett konto

Det er enkelt å melde seg inn for å starte en ny konto!

Start en konto

Logg inn

Har du allerede en konto? Logg inn her.

Logg inn nå
  • Hvem er aktive   0 medlemmer

    • Ingen innloggede medlemmer aktive
×
×
  • Opprett ny...