2009-04-14 18 views
2

Ich bin sehr neu in F #, und ich dachte, ich würde einen einfachen Winform Rechner entwickeln, um meine Fähigkeiten mit F # und .NET zu stärken. Ich stieß auf zwei Probleme, die wahrscheinlich sehr einfache Antworten haben, aber ich konnte keine Hilfe von meinen Ressourcen finden.F # und winform Controls Frage

Zuerst möchte ich in der Lage sein, meinen Textbox-Typ zu Integer zu ändern, so dass, wenn ich meine "Hinzufügen" -Taste drücke das Ereignis die Ganzzahlen hinzufügen und nicht verketten. Zum Beispiel:

btnPlus.Click.Add (fun _ -> tb1.Text < - ("2") + ("2")) gibt mir 22 und nicht mehr als 4

Wie gebe ich Integer-Typen für eine Textbox oder einen Integer-Typ für Werte, die in eine Textbox eingegeben werden?

Meine nächste Frage hat mit der Syntax zu tun. Ich habe mich nur gefragt, wie man einem Event mehrere Befehle hinzufügen kann. Das heißt, in dem obigen Beispiel, sagen wir, wollte ich die zwei Ganzzahlen hinzufügen, öffnen Sie ein anderes Formular, und führen Sie eine Nachricht, nachdem Sie auf die Schaltfläche klicken. Füge ich einfach Kommas zwischen den einzelnen Befehlen ein, z. B .: btnPlus.Click.Add (Spaß _ -> Ganzzahlen hinzufügen, Formular öffnen, Meldungsfeld) oder ist etwas anderes beteiligt?

Ich entschuldige mich für die Sophomoric Fragen. Es gibt nicht genügend Ressourcen auf F # und WinForms, da es auf F # und Ausgang (dh Druck, cmd, etc ..)

Danke,

DFM

Antwort

2

ich denke, der Textbox Text ist immer ein String, aber Sie können z

(2 + 2).ToString() 

(nicht ganz sicher, was Sie nach).

Wie für mehrere Anweisungen innerhalb des Körpers des Lambda, ist F # ausdrucksbasiert, verwendet aber ';' oder Zeilenumbrüche für die Sequenzierung, z.B.

(fun _ -> doFoo(); doBar()) 

oder

(fun _ -> 
    doFoo() 
    doBar() 
) 
+0

Vielen Dank für das Feedback. Ihre Antwort wird mich in die richtige Richtung bringen. Ich wollte überprüfen, wie die Syntax zum Addieren, Subtrahieren, Multiplizieren usw. von Ganzzahlen nach einem Klick-Ereignis aussieht. Schließlich werde ich die Zahlen (2) durch Textbox-Eingaben ersetzen, ähnlich wie bei einem Taschenrechner. Vielen Dank - –

1

Sie haben einfach die Textbox Inhalt als Integer zu analysieren. Sie können dies über Convert.ToInt32 tun.

open System 
let string1 = "254" 
let string2 = "4525" 
let myNum = Convert.ToInt32(string1) + Convert.ToInt32(string2) 

Edit: Sie können auch Int32.TryParse (string, int32) verwenden, es zu tun.

Edit: In F # können Sie einfach "int", z. (int Zeichenfolge1).

+0

Danke für die zweite Follow-up. Deine Antwort war perfekt! Ich konnte zwei Textbox-Eingaben mithilfe der int-Methode erfolgreich hinzufügen. Nochmals vielen Dank, DFM –