Hallo zusammen,
ganz untenstehender Code funktioniert soweit(bin noch nicht allzu lange dabei, und bin für jeden Verbesserungsvorschlag dankbar!)!
Jetzt möchte ich aber aus:
folgendes machen:
Dann füllt sich die cmb_Stabdübel_Durchmesser gar nicht mehr und die cmb_Stahlsorte zeigt nur noch das angewählte Item.
Wenn ich nun die cmb_Verbindungsmittel-Auswahl ändere, kommt folgender Fehler: NullReferenceException wurde nicht behandelt.
Was mache ich falsch, bzw. wo liegt mein Denkfehler?!
Ich hoffe, irgendjemand hier hat die Muße, sich das mal anzugucken...
Hier der komplette Code:
ganz untenstehender Code funktioniert soweit(bin noch nicht allzu lange dabei, und bin für jeden Verbesserungsvorschlag dankbar!)!
Jetzt möchte ich aber aus:
folgendes machen:
Dann füllt sich die cmb_Stabdübel_Durchmesser gar nicht mehr und die cmb_Stahlsorte zeigt nur noch das angewählte Item.
Wenn ich nun die cmb_Verbindungsmittel-Auswahl ändere, kommt folgender Fehler: NullReferenceException wurde nicht behandelt.
Was mache ich falsch, bzw. wo liegt mein Denkfehler?!
Ich hoffe, irgendjemand hier hat die Muße, sich das mal anzugucken...
Hier der komplette Code:
VB.NET-Quellcode
- Imports System.IO
- Public Class frm_Laschenanschluss1
- Private spalten As String()
- 'Hier wird der pfad ermittelt, wo Projekt liegt:
- Private startpfad As String = Application.StartupPath.ToString
- 'Statt 9 Zeichen abzuziehen,könnte ich auch die Textdateien in den StartupPath (Pfad mit der .exe) legen - ist vielleicht besser...:
- Private pfad As String = startpfad.Substring(0, startpfad.Length - 9)
- Private MaterialartReader As String() = File.ReadAllLines(Path.Combine(pfad, "Materialart.txt"))
- Private LHReader As String() = File.ReadAllLines(pfad & "LH.txt")
- Private NHReader As String() = File.ReadAllLines(pfad & "NH.txt")
- Private BSHReader As String() = File.ReadAllLines(pfad & "BSH.txt")
- Private VMReader As String() = File.ReadAllLines(Path.Combine(pfad, "Verbindungsmittel.txt"))
- Private StabDübelStahlgüteReader As String() = File.ReadAllLines(pfad & "Stahlsorte-Stabdübel.txt")
- Private StabDübelDurchmesserReader As String() = File.ReadAllLines(pfad & "Stabdübel-Durchmesser.txt")
- Private BolzenklasseReader As String() = File.ReadAllLines(pfad & "Festigkeit-Bolzen-Passbolzen-Gewindestangen.txt")
- Private Sub frm_Laschenanschluss1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
- 'Startfenster maximieren
- Me.WindowState = FormWindowState.Maximized
- 'panel an Formulargrösse anpassen
- pnl_links.Height = Me.Height - MenuStrip1.Height - 38 '38 wegen des Formularrahmens
- 'comboboxen füllen und Wert anzeigen:
- cmb_NKL.SelectedIndex = 1
- cmb_KLED.SelectedIndex = 4
- For Each line As String In MaterialartReader
- cmb_Materialart1.Items.Add(line)
- cmb_Materialart2.Items.Add(line)
- Next
- cmb_Materialart1.SelectedIndex = 2
- cmb_Materialart2.SelectedIndex = 1
- For Each line As String In VMReader
- cmb_Verbindungsmittel.Items.Add(line)
- Next
- cmb_Verbindungsmittel.SelectedIndex = 1
- End Sub
- Private Sub frm_Laschenanschluss1_SizeChanged(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.SizeChanged
- 'panel an Formulargrösse anpassen
- pnl_links.Height = Me.Height - MenuStrip1.Height - 38 '38 wegen des Formularrahmens
- End Sub
- Private Sub chk_VM1_CheckedChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles chk_VM1.CheckedChanged
- 'Verbindungsmittel-Checkboxen immer gleiche Anwahl:
- chk_VM2.Checked = chk_VM1.Checked
- End Sub
- Private Sub chk_VM2_CheckedChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles chk_VM2.CheckedChanged
- 'Verbindungsmittel-Checkboxen immer gleiche Anwahl:
- chk_VM1.Checked = chk_VM2.Checked
- End Sub
- Private Sub cmb_Materialart1_SelectedIndexChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles cmb_Materialart1.SelectedIndexChanged
- 'Festigkeitsklasse-Combobox füllen und Wert anzeigen:
- cmb_Festigkeitsklasse1.Items.Clear()
- Select Case cmb_Materialart1.SelectedItem
- Case "Nadelholz"
- For Each line As String In NHReader
- spalten = line.Split(vbTab)
- If Not spalten(0) = "Name" Then
- cmb_Festigkeitsklasse1.Items.Add(spalten(0))
- cmb_Festigkeitsklasse1.SelectedIndex = 0
- End If
- Next
- Case "Laubholz"
- For Each line As String In LHReader
- spalten = line.Split(vbTab)
- If Not spalten(0) = "Name" Then
- cmb_Festigkeitsklasse1.Items.Add(spalten(0))
- cmb_Festigkeitsklasse1.SelectedIndex = 0
- End If
- Next
- Case "BSH"
- For Each line As String In BSHReader
- spalten = line.Split(vbTab)
- If Not spalten(0) = "Name" Then
- cmb_Festigkeitsklasse1.Items.Add(spalten(0))
- cmb_Festigkeitsklasse1.SelectedIndex = 0
- End If
- Next
- End Select
- 'Nachweise-Label füllen:
- lbl_Materialart1.Text = cmb_Materialart1.SelectedItem.ToString & ", " & cmb_Festigkeitsklasse1.SelectedItem.ToString
- End Sub
- Private Sub cmb_Materialart2_SelectedIndexChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles cmb_Materialart2.SelectedIndexChanged
- 'Festigkeitsklasse-Combobox füllen und Wert anzeigen:
- cmb_Festigkeitsklasse2.Items.Clear()
- Select Case cmb_Materialart2.SelectedItem
- Case "Nadelholz"
- For Each line As String In NHReader
- spalten = line.Split(vbTab)
- If Not spalten(0) = "Name" Then
- cmb_Festigkeitsklasse2.Items.Add(spalten(0))
- cmb_Festigkeitsklasse2.SelectedIndex = 0
- End If
- Next
- Case "Laubholz"
- For Each line As String In LHReader
- spalten = line.Split(vbTab)
- If Not spalten(0) = "Name" Then
- cmb_Festigkeitsklasse2.Items.Add(spalten(0))
- cmb_Festigkeitsklasse2.SelectedIndex = 0
- End If
- Next
- Case "BSH"
- For Each line As String In BSHReader
- spalten = line.Split(vbTab)
- If Not spalten(0) = "Name" Then
- cmb_Festigkeitsklasse2.Items.Add(spalten(0))
- cmb_Festigkeitsklasse2.SelectedIndex = 0
- End If
- Next
- End Select
- 'Nachweise-Label füllen:
- lbl_Materialart2.Text = cmb_Materialart2.SelectedItem.ToString & ", " & cmb_Festigkeitsklasse2.SelectedItem.ToString
- End Sub
- Private Sub cmb_Verbindungsmittel_SelectedIndexChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles cmb_Verbindungsmittel.SelectedIndexChanged
- 'Stahlsorte-Combobox und Durchmesser-Combobox füllen und Wert anzeigen:
- cmb_Stahlsorte.Items.Clear()
- cmb_Stabdübel_Durchmesser.Items.Clear()
- Select Case cmb_Verbindungsmittel.SelectedItem
- Case "Passbolzen"
- For Each line As String In BolzenklasseReader
- spalten = line.Split(vbTab)
- If Not spalten(0) = "Klasse" Then
- cmb_Stahlsorte.Items.Add(spalten(0))
- cmb_Stahlsorte.SelectedIndex = 0
- End If
- Next
- For Each line As String In StabDübelDurchmesserReader
- If Not line.ToString = "Durchmesser" Then
- cmb_Stabdübel_Durchmesser.Items.Add(line)
- cmb_Stabdübel_Durchmesser.SelectedIndex = 0
- End If
- Next
- Case "Stabdübel"
- For Each line As String In StabDübelStahlgüteReader
- spalten = line.Split(vbTab)
- If Not spalten(0) = "Stahlsorte" Then
- cmb_Stahlsorte.Items.Add(spalten(0))
- cmb_Stahlsorte.SelectedIndex = 0
- End If
- Next
- For Each line As String In StabDübelDurchmesserReader
- If Not line.ToString = "Durchmesser" Then
- cmb_Stabdübel_Durchmesser.Items.Add(line)
- cmb_Stabdübel_Durchmesser.SelectedIndex = 0
- End If
- Next
- Case "Gewindestangen"
- For Each line As String In BolzenklasseReader
- spalten = line.Split(vbTab)
- If Not spalten(0) = "Klasse" Then
- If spalten(4) = "Ja" Then
- cmb_Stahlsorte.Items.Add(spalten(0))
- cmb_Stahlsorte.SelectedIndex = 0
- End If
- End If
- Next
- For Each line As String In StabDübelDurchmesserReader
- If Not line.ToString = "Durchmesser" Then
- cmb_Stabdübel_Durchmesser.Items.Add(line)
- cmb_Stabdübel_Durchmesser.SelectedIndex = 0
- End If
- Next
- End Select
- 'Nachweise-Label füllen:
- lbl_VM.Text = cmb_Verbindungsmittel.SelectedItem.ToString & ", " & cmb_Stahlsorte.SelectedItem.ToString
- End Sub
- Private Sub cmb_Stahlsorte_SelectedIndexChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles cmb_Stahlsorte.SelectedIndexChanged
- 'f_uk-Textbox füllen:
- txt_fuk.Clear()
- Select Case cmb_Verbindungsmittel.SelectedItem.ToString
- Case "Passbolzen"
- For Each line As String In BolzenklasseReader
- spalten = line.Split(vbTab)
- If spalten(0) = cmb_Stahlsorte.SelectedItem.ToString Then
- txt_fuk.Text = spalten(1)
- End If
- Next
- Case "Stabdübel"
- For Each line As String In StabDübelStahlgüteReader
- spalten = line.Split(vbTab)
- Select Case cmb_Stahlsorte.SelectedItem.ToString
- Case "benutzerdefiniert"
- txt_fuk.Text = ""
- txt_fuk.Focus()
- Case Else
- If spalten(0) = cmb_Stahlsorte.SelectedItem.ToString Then
- txt_fuk.Text = spalten(1)
- End If
- End Select
- Next
- Case "Gewindestangen"
- For Each line As String In BolzenklasseReader
- spalten = line.Split(vbTab)
- If spalten(0) = cmb_Stahlsorte.SelectedItem.ToString Then
- txt_fuk.Text = spalten(1)
- End If
- Next
- End Select
- 'Nachweise-Label füllen:
- lbl_VM.Text = cmb_Verbindungsmittel.SelectedItem.ToString & ", " & cmb_Stahlsorte.SelectedItem.ToString
- End Sub
- End Class