Hallo, Computer Mensch,
Du kannst den Dateinamen nicht direkt verwenden. sondern musst den OpenFileDialog getrennt ausführen. Der OpenFileDialog liefert den Dateinamen als String.
Die richtige Übergabe könnte so erfolgen, wie ich es im Folgenden darstelle. Ich hoffe, dass hilft Dir. Wäre nett, wenn Du mir mal mitteilst, ob es geklappt hat.
Viel Erfolg!
Freundliche Grüße
P.S.: Icon-Bilder sollten die Größe 17x17 Einheiten nicht überschreiten.
Der Name von Pfad+Bilddatei wird im ganzen Formular benötigt. Direkt unterhalb der Klassendefinition muss deshalb die Definition erfolgen
Dim myBilddateiname As String
An der Stelle, wo Du das Icon brauchst, kommt dann:
Dim OpenFileDialog1 As New OpenFileDialog
'Solange der OpenFileDialog dauert:
With OpenFileDialog1
'Parameter für OpenFileDialog festlegen
'1. legt fest, dass Fehlermeldung angezeigt wird,
’ wenn Benutzer Name einer nicht vorhandenen Datei angibt
OpenFileDialog1.CheckFileExists = True
'2. Typauswahl festlegen: 1. Angabe = Standard
OpenFileDialog1.Filter = „JPeg-Bilder (*.jpg)|*.jpg|Windows Bitmap (*.bmp)|*.bmp|Alle Dateien (*.*)|*.*“
Dim locDr As DialogResult
'Dialog des Open-File-Dialogs auswerten (Öffnen oder Abbrechen gewählt?)
locDr = locOfd.ShowDialog()
If locDr = Windows.Forms.DialogResult.Cancel Then
'Abbrechen gewählt
Return
End If
'Übergabe des Dateinamens+Pfad an Variable myBilddateiname,
'damit er dem ganzen formular zur Verfügung steht
myBilddateiname = OpenFileDialog1.FileName
'Anzeige des Icon durch eine eigene Funktion (Damit Du auch an anderen Stellen, wo ein Image
'benötigt wird, dieses laden kannst)
Form1.NotifyIcon1.Icon = GetCoverImage(myBilddateiname)
End With
Jetzt musst Du noch die Funktion erfassen (i. d. R. mit einer Funktionsbeschreibung für IntelliSense. Genau wie bei eingebauten Methoden wird IntelliSense zwar aktiv – doch die sonst so hilfreichen Erklärungen kommen automatisch natürlich nicht.)
'Bilddatei aus einer Datei in ein Image-Objekt laden
'Hier könnten Fehler auftreten --> behandeln
‚‘’
‚‘’ Bild aus Datei laden, wenn es vorhanden ist, und Bild als Image
‚‘’ zurückliefern oder Nothing
‚‘’
‚‘’ Name der Bilddatei
‚‘’ Image-Obj. der angegebenen Datei oder Nothing
‚‘’ Erstellt am 10.09.2010 von Hochzeitsvorbereiterin
Function GetCoverImage(ByVal CoverbildDateiname As String) As Image
Dim locImage As Image
If CoverbildDateiname IsNot Nothing AndAlso CoverbildDateiname „“ Then
Try
'ohne Fehler
locImage = Image.FromFile(CoverbildDateiname)
Return locImage
Catch ex As Exception
'nach Fehler; ggf. Fehlermeldung organisieren
End Try
End If
Return Nothing
End Function