Textboxen mit Steuer assieren

  • VB.NET

Es gibt 14 Antworten in diesem Thema. Der letzte Beitrag () ist von RodFromGermany.

    Textboxen mit Steuer assieren

    Hallo an alle,

    sorry für meie Frage und bitte entschuldigt, ich bin ein Anfänger, der mal mit Basic 6 oder so vor 10 Jahren zu tn hatte.
    Mittlerweile habe ich auch schon das ganze Forum "durchgewühlt"

    Ich habe gesamt 3 Text boxen txt_netto, txt_steuer, txt_ gesamt. Gern möchte ich, das ich in die beiden ersten eine Zahl mit Komma eingebe und dann bei einem Tab automatisch das Ergebnis oder Click auf diese Textbox die Summe erscheint.

    Ich hatte auch schon Dim txt_netto As Integer etc. eingegeben und Codes von Euch, aber es klappt nicht. Vielleicht könnt ihr mir ja helfen. Wäre sehr dankbar.

    Gibt es vielleicht auch eine Möglichkeit, wenn ich den Print Button drücke, das die Form 1 gleich zweimal gedruckt wird?

    Jede Menge Fragen .... :)

    Danke Viddi aus Hamburg

    Edit by ~blaze~:
    *Thema aus Offtopic verschoben*

    Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von „~blaze~“ ()

    Da txt_Netto eine TextBox ist kann sie nicht als Variable "Integer" deklariert werden

    VB.NET-Quellcode

    1. Dim NettoWert as Integer = convert.ToInt32(txt_Netto.text)


    Das Automatische Rechnen könntest du im Leave Event des Elements txt_Steuer unterbrinden

    VB.NET-Quellcode

    1. txt_gesammt.text = convert.ToInt32(txt_netto.text) + convert.ToInt32(txt_steuer.text)
    There is no CLOUD - just other people's computers

    Q: Why do JAVA developers wear glasses?
    A: Because they can't C#

    Daily prayer:
    "Dear Lord, grand me the strength not to kill any stupid people today and please grant me the ability to punch them in the face over standard TCP/IP."
    So bisher hatte ich folgenden Code lt Foru eingegeben.

    VB.NET-Quellcode

    1. Private Sub TextBox29_TextChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles TextBox29.TextChanged
    2. Dim inhalt2 As Double
    3. inhalt2 = TextBox29.Text
    4. If TextBox28.Text = "0" Then TextBox32.Text = Val(TextBox30.Text) + Val(TextBox29.Text)
    5. End Sub


    Das Val hatte ich gegen CDbl ausgetauscht. Klappte leider nicht, dasautomatisch in die txt_gesamt das Ergebnis rauskommt. Bezüglich der MwSt ist es kein Problem, da ich rechnen kann :)

    Na

    Bei button_click - drucken fogender Code: PrintForm1.Print()
    Hatte schon verschiedenes versucht, mit Copie etc. doch leider klappte es nicht. Hoffe @ shaebich - Eigeninitiative ist da, mehr als genug, doch manchmal sieht man den Wald vor lauter Bäumen nicht mehr.

    Liebe Grüße aus Hamburg

    VB-Tags eingefügt. ~Thunderbolt

    Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von „Thunderbolt“ ()

    Immer mit Variablen arbeiten anstatt mit den Controls.

    TextTox32 ?!?! Was planst denn du da? :D

    Nimm einfach ein paar Klassenvariablen, welchen du im TextBoxChangedEvent die neuen Werte zuweist.

    z.B. so:

    VB.NET-Quellcode

    1. Dim betragNetto As Double
    2. Dim steuersatz As Integer
    3. Dim betragSteuer As Double
    4. Dim betragGesamt As Double


    Jetzt kannst du in den entsprechenden TextBoxen im Changed Event immer die Passende Variable einfach neu Setzten:

    VB.NET-Quellcode

    1. Me.betragNetto = Double.Parse(TextBoxXX.Text)


    Für die Berechnung kannst du eine eigene Sub schreiben welche du in jedem Event aufrufst. In dieser wird der neue Gesamt Wert berechnet und in die TextBox geschrieben.

    Klingt alles vielleicht ein bisschen kompliziert und umständlich (geht natürlich auch viel viel viel einfacher und schneller) aber ich denke so ist der Lerneffekt dann schon relativ groß :)

    EDIT: kleines Sample Projekt im Anhang

    Zitat entfernt. Ausführbare Dateien entfernt. ~Thunderbolt
    Dateien

    Dieser Beitrag wurde bereits 2 mal editiert, zuletzt von „Thunderbolt“ ()

    Hallo shaebich,

    Leider kann ich die Datei nicht öffnen, benutze Visual Studio 2012
    Vielleicht kannst du mir erklären, oder einen Link geben, wie ich eine eigene sub mit der Steuer schreibe.

    Wie gesagt, vor 10 Jahren war ich mal dabei, hatte Spass und möchte gerne wieder reinkommen.

    Danke erstmal. Ich weiss das es hier für manche - für mein Problem - "nichts" ist, aber ich stehe vor einem Rätsel.

    Grüße aus Hamburg

    Viddi schrieb:

    Datei nicht öffnen
    Ändere / ersetze folgende Dateien durch dies:
    BruttoNettoRechner.sln

    Quellcode

    1. Microsoft Visual Studio Solution File, Format Version 12.00
    2. # Visual Studio 12
    3. Project("{F184B08F-C81C-45F6-A57F-5ABD9991F28F}") = "BruttoNettoRechner", "BruttoNettoRechner\BruttoNettoRechner.vbproj", "{85DE7820-1394-4B15-955B-F21DB3CE8359}"
    4. EndProject
    5. Global
    6. GlobalSection(SolutionConfigurationPlatforms) = preSolution
    7. Debug|Any CPU = Debug|Any CPU
    8. Release|Any CPU = Release|Any CPU
    9. EndGlobalSection
    10. GlobalSection(ProjectConfigurationPlatforms) = postSolution
    11. {85DE7820-1394-4B15-955B-F21DB3CE8359}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
    12. {85DE7820-1394-4B15-955B-F21DB3CE8359}.Debug|Any CPU.Build.0 = Debug|Any CPU
    13. {85DE7820-1394-4B15-955B-F21DB3CE8359}.Release|Any CPU.ActiveCfg = Release|Any CPU
    14. {85DE7820-1394-4B15-955B-F21DB3CE8359}.Release|Any CPU.Build.0 = Release|Any CPU
    15. EndGlobalSection
    16. GlobalSection(SolutionProperties) = preSolution
    17. HideSolutionNode = FALSE
    18. EndGlobalSection
    19. EndGlobal
    app.config

    XML-Quellcode

    1. <?xml version="1.0" encoding="utf-8" ?>
    2. <configuration>
    3. <startup>
    4. <supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.0" />
    5. </startup>
    6. </configuration>
    BruttoNettoRechner.vbproj

    XML-Quellcode

    1. <?xml version="1.0" encoding="utf-8"?>
    2. <Project ToolsVersion="14.0" DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
    3. <Import Project="$(MSBuildExtensionsPath)\$(MSBuildToolsVersion)\Microsoft.Common.props" Condition="Exists('$(MSBuildExtensionsPath)\$(MSBuildToolsVersion)\Microsoft.Common.props')" />
    4. <PropertyGroup>
    5. <Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration>
    6. <Platform Condition=" '$(Platform)' == '' ">AnyCPU</Platform>
    7. <ProjectGuid>{85DE7820-1394-4B15-955B-F21DB3CE8359}</ProjectGuid>
    8. <OutputType>WinExe</OutputType>
    9. <StartupObject>BruttoNettoRechner.My.MyApplication</StartupObject>
    10. <RootNamespace>BruttoNettoRechner</RootNamespace>
    11. <AssemblyName>BruttoNettoRechner</AssemblyName>
    12. <FileAlignment>512</FileAlignment>
    13. <MyType>WindowsForms</MyType>
    14. <TargetFrameworkVersion>v4.0</TargetFrameworkVersion>
    15. <AutoGenerateBindingRedirects>true</AutoGenerateBindingRedirects>
    16. <TargetFrameworkProfile />
    17. </PropertyGroup>
    18. <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
    19. <PlatformTarget>AnyCPU</PlatformTarget>
    20. <DebugSymbols>true</DebugSymbols>
    21. <DebugType>full</DebugType>
    22. <DefineDebug>true</DefineDebug>
    23. <DefineTrace>true</DefineTrace>
    24. <OutputPath>bin\Debug\</OutputPath>
    25. <DocumentationFile>BruttoNettoRechner.xml</DocumentationFile>
    26. <NoWarn>42016,41999,42017,42018,42019,42032,42036,42020,42021,42022</NoWarn>
    27. </PropertyGroup>
    28. <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|AnyCPU' ">
    29. <PlatformTarget>AnyCPU</PlatformTarget>
    30. <DebugType>pdbonly</DebugType>
    31. <DefineDebug>false</DefineDebug>
    32. <DefineTrace>true</DefineTrace>
    33. <Optimize>true</Optimize>
    34. <OutputPath>bin\Release\</OutputPath>
    35. <DocumentationFile>BruttoNettoRechner.xml</DocumentationFile>
    36. <NoWarn>42016,41999,42017,42018,42019,42032,42036,42020,42021,42022</NoWarn>
    37. </PropertyGroup>
    38. <PropertyGroup>
    39. <OptionExplicit>On</OptionExplicit>
    40. </PropertyGroup>
    41. <PropertyGroup>
    42. <OptionCompare>Binary</OptionCompare>
    43. </PropertyGroup>
    44. <PropertyGroup>
    45. <OptionStrict>Off</OptionStrict>
    46. </PropertyGroup>
    47. <PropertyGroup>
    48. <OptionInfer>On</OptionInfer>
    49. </PropertyGroup>
    50. <ItemGroup>
    51. <Reference Include="System" />
    52. <Reference Include="System.Data" />
    53. <Reference Include="System.Deployment" />
    54. <Reference Include="System.Drawing" />
    55. <Reference Include="System.Windows.Forms" />
    56. <Reference Include="System.Xml" />
    57. <Reference Include="System.Core" />
    58. <Reference Include="System.Xml.Linq" />
    59. <Reference Include="System.Data.DataSetExtensions" />
    60. <Reference Include="System.Net.Http" />
    61. </ItemGroup>
    62. <ItemGroup>
    63. <Import Include="Microsoft.VisualBasic" />
    64. <Import Include="System" />
    65. <Import Include="System.Collections" />
    66. <Import Include="System.Collections.Generic" />
    67. <Import Include="System.Data" />
    68. <Import Include="System.Drawing" />
    69. <Import Include="System.Diagnostics" />
    70. <Import Include="System.Windows.Forms" />
    71. <Import Include="System.Linq" />
    72. <Import Include="System.Xml.Linq" />
    73. <Import Include="System.Threading.Tasks" />
    74. </ItemGroup>
    75. <ItemGroup>
    76. <Compile Include="Form1.vb">
    77. <SubType>Form</SubType>
    78. </Compile>
    79. <Compile Include="Form1.Designer.vb">
    80. <DependentUpon>Form1.vb</DependentUpon>
    81. <SubType>Form</SubType>
    82. </Compile>
    83. <Compile Include="My Project\AssemblyInfo.vb" />
    84. <Compile Include="My Project\Application.Designer.vb">
    85. <AutoGen>True</AutoGen>
    86. <DependentUpon>Application.myapp</DependentUpon>
    87. </Compile>
    88. <Compile Include="My Project\Resources.Designer.vb">
    89. <AutoGen>True</AutoGen>
    90. <DesignTime>True</DesignTime>
    91. <DependentUpon>Resources.resx</DependentUpon>
    92. </Compile>
    93. <Compile Include="My Project\Settings.Designer.vb">
    94. <AutoGen>True</AutoGen>
    95. <DependentUpon>Settings.settings</DependentUpon>
    96. <DesignTimeSharedInput>True</DesignTimeSharedInput>
    97. </Compile>
    98. </ItemGroup>
    99. <ItemGroup>
    100. <EmbeddedResource Include="Form1.resx">
    101. <DependentUpon>Form1.vb</DependentUpon>
    102. </EmbeddedResource>
    103. <EmbeddedResource Include="My Project\Resources.resx">
    104. <Generator>VbMyResourcesResXFileCodeGenerator</Generator>
    105. <LastGenOutput>Resources.Designer.vb</LastGenOutput>
    106. <CustomToolNamespace>My.Resources</CustomToolNamespace>
    107. <SubType>Designer</SubType>
    108. </EmbeddedResource>
    109. </ItemGroup>
    110. <ItemGroup>
    111. <None Include="My Project\Application.myapp">
    112. <Generator>MyApplicationCodeGenerator</Generator>
    113. <LastGenOutput>Application.Designer.vb</LastGenOutput>
    114. </None>
    115. <None Include="My Project\Settings.settings">
    116. <Generator>SettingsSingleFileGenerator</Generator>
    117. <CustomToolNamespace>My</CustomToolNamespace>
    118. <LastGenOutput>Settings.Designer.vb</LastGenOutput>
    119. </None>
    120. <None Include="App.config" />
    121. </ItemGroup>
    122. <Import Project="$(MSBuildToolsPath)\Microsoft.VisualBasic.targets" />
    123. <!-- To modify your build process, add your task inside one of the targets below and uncomment it.
    124. Other similar extension points exist, see Microsoft.Common.targets.
    125. <Target Name="BeforeBuild">
    126. </Target>
    127. <Target Name="AfterBuild">
    128. </Target>
    129. -->
    130. </Project>

    Falls Du diesen Code kopierst, achte auf die C&P-Bremse.
    Jede einzelne Zeile Deines Programms, die Du nicht explizit getestet hast, ist falsch :!:
    Ein guter .NET-Snippetkonverter (der ist verfügbar).
    Programmierfragen über PN / Konversation werden ignoriert!
    Hier der ganze Code :D

    VB.NET-Quellcode

    1. Imports System.Globalization
    2. Public Class Form1
    3. Dim _BetragNetto As Double
    4. Dim _Steuersatz As Integer
    5. Dim _BetragSteuer As Double
    6. Dim _Gesamtbetrag As Double
    7. Private Sub Berechne()
    8. Me._BetragSteuer = (Me._BetragNetto / 100) * Me._Steuersatz
    9. Me.TextBox3.Text = Me._BetragSteuer.ToString("C", CultureInfo.CurrentCulture)
    10. Me._Gesamtbetrag = Me._BetragNetto + Me._BetragSteuer
    11. Me.TextBox4.Text = Me._Gesamtbetrag.ToString("C", CultureInfo.CurrentCulture)
    12. End Sub
    13. Private Sub TextBox1_TextChanged(sender As Object, e As EventArgs) Handles TextBox1.TextChanged
    14. Me._BetragNetto = Double.Parse(TextBox1.Text)
    15. Me.Berechne()
    16. End Sub
    17. Private Sub TextBox2_TextChanged(sender As Object, e As EventArgs) Handles TextBox2.TextChanged
    18. Me._Steuersatz = Integer.Parse(TextBox2.Text)
    19. Me.Berechne()
    20. End Sub
    21. End Class

    Viddi schrieb:

    vor 10 Jahren war ich mal dabei, hatte Spass und möchte gerne wieder reinkommen
    Dann solltest du vielleicht mit Option Strict On beginnen, damit nicht solche Konstrukte dabei rauskommen.

    Visual Basic-Quellcode

    1. Dim inhalt2 As Double
    2. inhalt2 = TextBox29.Text

    Vielleicht mal diesen Thread lesen:
    Visual Studio - Empfohlene Einstellungen
    --
    If Not Program.isWorking Then Code.Debug Else Code.DoNotTouch
    --
    Vielen Dank für Eure Hilfe. Ich habe es nun mit einem Button gelöst.
    Weiter benötigen wir die Mehrwertsteuer nicht.
    Hier der Code für das Rechnen:

    VB.NET-Quellcode

    1. Private Sub btn_rechnen_Click(sender As Object, e As EventArgs) Handles btn_rechnen.Click
    2. Dim Zahl1 As Double
    3. Dim Zahl2 As Double
    4. Dim Ergebnis As Double
    5. Double.TryParse(txt_netto.Text, Zahl1)
    6. Double.TryParse(txt_summe.Text, Zahl2)
    7. Ergebnis = Zahl1 + Zahl2
    8. txt_gesamt.Text = Ergebnis.ToString()
    9. End Sub


    Denke, das es so richtig ist - es funktioniert zumindest.

    Liebe Grüße aus Hamburg

    VB-Tags eingefügt. ~Thunderbolt

    Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von „Thunderbolt“ ()

    Hallo petaod,

    ich habe hier es unterbunden Buchstaben einzugeben:


    Private Sub txt_netto_KeyPress( _
    ByVal sender As Object, _
    ByVal e As System.Windows.Forms.KeyPressEventArgs) _
    Handles txt_netto.KeyPress
    Select Case Asc(e.KeyChar)
    Case 48 To 57, 8, 32, 44
    Case Else
    e.Handled = True
    End Select
    End Sub

    Das war so die einzige Lösung, die mir einfiel.

    Viddi schrieb:

    unterbunden Buchstaben einzugeben
    Wenn das gesichert ist, kannst Du das TryParse weglassen.
    Wichtig ist, ob Du die Double-Strings mit Komma oder mit Punkt ausstattest, dann musst Du zum Konvertieren die korrekte Kultur verwenden.
    Falls Du diesen Code kopierst, achte auf die C&P-Bremse.
    Jede einzelne Zeile Deines Programms, die Du nicht explizit getestet hast, ist falsch :!:
    Ein guter .NET-Snippetkonverter (der ist verfügbar).
    Programmierfragen über PN / Konversation werden ignoriert!