Umrechnung

-Ener-

Erfahrenes Mitglied
Hallo, bin ein völliger Anfänger in Sachen VB und habe einige Fragen:

Wo bekomme ich gute Tutorials für Visual Basic 2005 Express ?

Ist VB.NET das selbe oder welche verschiedene Versionen oder Typen von VB gibt es?

Ich habe ein Tutorial gefunden für einen Währungsumrechner, ging eigentlich auch ganz einfach, nur der zuletzt eingefügte Code gibt bei VB2005 Express Fehler aus, und zwar diesen:

Fehler 1 "Option Strict On" lässt Operanden des Typs "Object" für den =-Operator nicht zu. Verwenden Sie den Is-Operator, wenn Sie die Objektidentität testen möchten.

Mein Code:

Code:
OptionExplicitOn
 
OptionStrictOn
 
Imports System
 
PublicClass MainForm
 
Inherits System.Windows.Forms.Form
 
PrivateConst DM AsDecimal = 1.95583D ' Deutsche Mark
 
PrivateConst BEF AsDecimal = 40.3399D ' Belgische Francs
 
PrivateConst ATS AsDecimal = 13.7603D ' Österreichische Schilling
 
PrivateConst FRF AsDecimal = 6.55957D ' Französische Francs
 
PrivateSub txtBetrag_KeyPress(ByVal sender AsObject, ByVal e As System.Windows.Forms.KeyPressEventArgs) Handles txtBetrag.KeyPress
 
SelectCase AscW(e.KeyChar)
 
Case 46, 48 To 57, 8
 
' Dezimalkomma, Ziffern und Backspace zulassen
 
CaseElse
 
e.Handled = True
 
EndSelect
 
EndSub
 
PrivateSub btnUmrechnen_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnUmrechnen.Click
 
Dim Betrag AsDecimal = CDec(txtBetrag.Text)
 
Dim Ergebnis AsDecimal
 
SelectCase cmbFrom.SelectedItem
 
Case cmbFrom.Items.Item(0)
 
' Euro in Euro umrechnen?
 
lblErgebnis.Text = "Sie können nur in Euro umrechnen."
 
Case cmbFrom.Items.Item(1)
 
' DM in Euro umrechnen
 
Ergebnis = Math.Round(Betrag / DM, 2)
 
lblErgebnis.Text = txtBetrag.Text & " DM sind " & _
 
"umgerechnet " & Ergebnis.ToString() & " Euro."
 
Case cmbFrom.Items.Item(2)
 
' Belgische Francs in Euro umrechnen
 
Ergebnis = Math.Round(Betrag / BEF, 2)
 
lblErgebnis.Text = txtBetrag.Text & " BEF sind " & _
 
"umgerechnet " & Ergebnis.ToString() & " Euro."
 
Case cmbFrom.Items.Item(3)
 
' Französische Francs in Euro umrechnen
 
Ergebnis = Math.Round(Betrag / FRF, 2)
 
lblErgebnis.Text = txtBetrag.Text & " FRF sind " & _
 
"umgerechnet " & Ergebnis.ToString() & " Euro."
 
Case cmbFrom.Items.Item(4)
 
' Österreichische Schilling in Euro umrechnen
 
Ergebnis = Math.Round(Betrag / ATS, 2)
 
lblErgebnis.Text = txtBetrag.Text & " ATS sind " & _
 
"umgerechnet " & Ergebnis.ToString() & " Euro."
 
EndSelect
 
EndSub
 
EndClass

Als Fehlerquelle wird jeweils das "cmbFrom.Items.Item(x)" gewellt unterstrichen dargestellt.

Wer kann mir diese Fragen beantworten und mir erklären warum dieser Fehler ausgegeben wird...?!

Danke
 
Du bist hier im falschen Forum. Das ist das Forum für VB6, VBA ..
Für das nächst mal verwende bitte, dass .Net Forum.

Ich denke der Fehler rührt daher das in den Case Statments Konstante Werte erwartet werden und keine Variablen.
Also Case cmbFrom.Items.Item(4) ist nicht möglich, da der Wert zur Laufzeit variiert.
Code:
SelectCase cmbFrom.SelectedItem
     Case 0
           ' Euro in Euro umrechnen?
            lblErgebnis.Text = "Sie können nur in Euro umrechnen."
      Case 1 
            ...
End Select
Dem entsprechend musst du die ComboBox in der richtigen Reihenfolge zu füllen.
 
-Ener- hat gesagt.:
Also ist VB 2005 - VB.NET ?

Hat Leider nicht funktioniert, dadurch kommen andere Fehler

Ja, da VB 2005 auf dem .Net Framework 2.0 basiert. Microsoft hat nur aus marketingtechnischen Gründen auf das ".Net" im Namen verzichtet.

Was kommen dann für andere Fehler ?
 
Zurück