Hallo Leute, ich habe ein Projekt in dem ich dem Benutzer die Möglichkeit geben möchte, den angezeigten Namen eines Buttons(ButtonX.text) zu ändern. Ich habe auf meiner Suche auch schon ein bisschen Code gefunden, diesen angepasst, und in ein neues Projekt geschrieben. Dort funktioniert der Code auch. Man beachte den Code vom [B][U]Button10_Click[/U][/B] Event
Public Class Form1
Dim colo_aktiv As String
Dim e_colo_aktiv As System.Drawing.Color
Dim colo_inaktiv As String
Dim e_colo_inaktiv As System.Drawing.Color
Private Declare Ansi Function GetPrivateProfileString Lib "kernel32.dll" _
Alias "GetPrivateProfileStringA" (ByVal lpApplicationName As String, _
ByVal lpKeyName As String, ByVal lpDefault As String, ByVal _
lpReturnedString As String, ByVal nSize As Int32, ByVal lpFileName As _
String) As Int32
Private Declare Ansi Function WritePrivateProfileString Lib "kernel32.dll" _
Alias "WritePrivateProfileStringA" (ByVal lpApplicationName As String, _
ByVal lpKeyName As String, ByVal lpString As String, ByVal lpFileName As _
String) As Int32
Public Function INI_ReadValueFromFile(ByVal strSection As String, ByVal _
strKey As String, ByVal strDefault As String, ByVal strFile As String) As _
String
Dim strTemp As String = Space(1024), lLength As Integer
lLength = GetPrivateProfileString(strSection, strKey, strDefault, _
strTemp, strTemp.Length, strFile)
Return (strTemp.Substring(0, lLength))
End Function
Public Function INI_WriteValueToFile(ByVal strSection As String, ByVal _
strKey As String, ByVal strValue As String, ByVal strFile As String) As _
Boolean
Return (Not (WritePrivateProfileString(strSection, strKey, strValue, _
strFile) = 0))
End Function
Private Sub Button10_Click(ByVal sender As System.Object, ByVal e As _
System.EventArgs) Handles Button10.Click
For i As Integer = 1 To 20
Me.Controls("Button" & i).Text = "Fehler " & i
INI_WriteValueToFile("Button" & i & " Eigenschaften", "Name", _
Me.Controls("Button" & i).Text, ".\cfg.ini")
Next
End Sub
Private Sub cmdSave_Click(ByVal sender As System.Object, ByVal e As _
System.EventArgs) Handles cmdSave.Click
End Sub
Private Sub cmdLoad_Click(ByVal sender As System.Object, ByVal e As _
System.EventArgs)
End Sub
End Class Wenn ich in diesem Programm auf Button10 drücke, werden alle 20 Buttons geändert und in einer ini gespeichert.
Wenn ich jedoch den Code:
Private Sub Button10_Click(ByVal sender As System.Object, ByVal e As _
System.EventArgs) Handles Button10.Click
For i As Integer = 1 To 20
Me.Controls("Button" & i).Text = "Fehler " & i
INI_WriteValueToFile("Button" & i & " Eigenschaften", "Name", _
Me.Controls("Button" & i).Text, ".\cfg.ini")
Next
End Sub kopiere, und in mein richtiges Programm einfüge, bekomme ich beim drücken auf den entsprechenden Button folgende Fehlermeldung:
NullReferenceException wurde nicht behandelt.
Der Objektverweis wurde nicht auf eine Objektinstanz festgelegt.
Hinweise zur Fehlerbehebnung:
Erstellen Sie eine Objektinstanz mit dem Schlüsselwort "new".
Überprüfen Sie, ob das Objekt NULL ist, bevor Sie die Methode aufrufen.
Für diese Ausnahme die allgemeine Hilfe aufrufen.
Kann mir jemand sagen, warum der Code in dem einen Programm funktioniert, und in meinem größeren Projekt diesen Fehler auswirft?
Mit freundlichen Grüßen
Ninnik |