none
Eigenes Icon for WindowsFormControl RRS feed

  • Frage

  • Hallo zusammen,

    ich habe ein abgeleitetes Steuerelement erstellt. nun haben diese User Steuerelemente alle das gleiche Icon in der Toolbox.

    Frage , kann man dieses Icon durch ein eigenes ersetzen und wenn ja dann wie geht das? und wie groß darf (soll) diese Icon sein und welche Grafikformat muss es haben?

    Huch das waren jetzt aber viele Fragen auf einmal, hoffentlich bekomme ich eine Antwort

    Danke und Gruß Dieter

    Samstag, 22. Mai 2010 15:10

Antworten

  • Hallo Dieter,

    ein eigenes Icon für Dein selbst erstelltes/abgeleitetes Steuerelement festzulegen, kannst Du über das ToolBoxBitmap Attribut festlegen. Das Symbol sollte als Bitmap mit 16x16 Pixeln vorliegen.

    Es kann sehr wahrscheinlich sein, dass Visual Studio in seiner Toolbox immer noch das Standard Icon anzeigt und nicht Dein eigenes. Bindet man das Assembly in einer anderen Projektmappe ein, wird erwartungsgemäß das eigene Icon angezeigt.

    Eine Anleitung, wie man ein ToolBoxBitmap aus einer eingebetteten Ressource verwendet, hatte ich kürzlich mal hier gepostet.


    Thorsten Dörfler
    Microsoft MVP Visual Basic
    Samstag, 22. Mai 2010 16:49
    Beantworter
  • Hallo Dieter,

    In deinem Beispiel an ChaosBernd schreibst du

    Bindet man das Assembly in einer anderen Projektmappe ein, wird erwartungsgemäß das eigene Icon angezeigt.

    wie ist das zu verstehen?

    Damit ist gemeint, dass das ToolboxBitmap Attribut nur dann zieht, wenn das Projekt als Assembly kompiliert ist und in einem anderen Projekt/einer anderen Projektmappe eingebunden wurde. Im gleichen Projekt oder auch in der gleichen Projektmappe, zeigt Visual Studio das eigene Symbol in der Toolbox. Das hat man aus Gründen der Performance so gelöst und gilt für die automatisch generierten Toolbox Einträge.

    Wenn Du den Eintrag manuell zur Toolbox hinzufügst, wird auch im gleichen Projekt/in der gleichen Projektmappe Dein benutzerdefiniertes Symbol angezeigt.

    1. Rechte Maustaste auf der Toolbox und "Einträge auswählen"
    2. Im Dialog Dein UserControl suchen und das Häkchen davor entfernen
    3. Über die Schaltfläche "Durchsuchen" das  kompilierte Assembly, das Dein UserControl enthält (meist im Debug Verzeichnis unterhalb des Projekts) auswählen
    4. Das Häkchen bei dessen Eintrag/Einträgen machen.
      Unter dem Eintrag sollte bereits das richtige Symbol angezeigt werden.
    5. Den Dialog mit "OK" verlassen


    Thorsten Dörfler
    Microsoft MVP Visual Basic
    Sonntag, 23. Mai 2010 10:07
    Beantworter

Alle Antworten

  • Hallo Dieter,

    ein eigenes Icon für Dein selbst erstelltes/abgeleitetes Steuerelement festzulegen, kannst Du über das ToolBoxBitmap Attribut festlegen. Das Symbol sollte als Bitmap mit 16x16 Pixeln vorliegen.

    Es kann sehr wahrscheinlich sein, dass Visual Studio in seiner Toolbox immer noch das Standard Icon anzeigt und nicht Dein eigenes. Bindet man das Assembly in einer anderen Projektmappe ein, wird erwartungsgemäß das eigene Icon angezeigt.

    Eine Anleitung, wie man ein ToolBoxBitmap aus einer eingebetteten Ressource verwendet, hatte ich kürzlich mal hier gepostet.


    Thorsten Dörfler
    Microsoft MVP Visual Basic
    Samstag, 22. Mai 2010 16:49
    Beantworter
  • Hallo Thorsten ,

    danke für die schnelle Antwort, sieht vielversprechend aus. Werde die beiden Wege Morgen testen und gebe dir auf jeden Fall Bescheid, ob ich damit klargekommen bin.

    Gruß Dieter

    Samstag, 22. Mai 2010 17:59
  • Hallo Thortsen,

    ich bin scheinbar zu doof, habe jetzt über eine stunde probiert aber es will einfach nicht gelingen. Ich habe mich eigentlich genau nach deiner Anleitung verhalten

    1. Die Resource eingebunden über Projekt Eigenschaften Resouce Bild Name FilterTextBox -> darauf erschien der resource Ordner im Projekt mit der Datei FilterTextBox.bmp

    2 Diese Datei im Resource Ordner im Builtvorgang als eingebettet Resource ausgewählt

    3 folgenden Text in die Projektdatei eingefügt

    <System.Drawing.ToolboxBitmap(GetType(FilterTextBox), "FilterTextBox.bmp")> _
    Public Class FilterTextBox : Inherits TextBox
    '....
    End Class

    trotzdem wird die Bitmap nicht angezeigt.

    In deinem Beispiel an ChaosBernd schreibst du

    Bindet man das Assembly in einer anderen Projektmappe ein, wird erwartungsgemäß das eigene Icon angezeigt.

    wie ist das zu verstehen?

    Gruß Dieter

    Sonntag, 23. Mai 2010 08:22
  • Hallo Dieter,

    In deinem Beispiel an ChaosBernd schreibst du

    Bindet man das Assembly in einer anderen Projektmappe ein, wird erwartungsgemäß das eigene Icon angezeigt.

    wie ist das zu verstehen?

    Damit ist gemeint, dass das ToolboxBitmap Attribut nur dann zieht, wenn das Projekt als Assembly kompiliert ist und in einem anderen Projekt/einer anderen Projektmappe eingebunden wurde. Im gleichen Projekt oder auch in der gleichen Projektmappe, zeigt Visual Studio das eigene Symbol in der Toolbox. Das hat man aus Gründen der Performance so gelöst und gilt für die automatisch generierten Toolbox Einträge.

    Wenn Du den Eintrag manuell zur Toolbox hinzufügst, wird auch im gleichen Projekt/in der gleichen Projektmappe Dein benutzerdefiniertes Symbol angezeigt.

    1. Rechte Maustaste auf der Toolbox und "Einträge auswählen"
    2. Im Dialog Dein UserControl suchen und das Häkchen davor entfernen
    3. Über die Schaltfläche "Durchsuchen" das  kompilierte Assembly, das Dein UserControl enthält (meist im Debug Verzeichnis unterhalb des Projekts) auswählen
    4. Das Häkchen bei dessen Eintrag/Einträgen machen.
      Unter dem Eintrag sollte bereits das richtige Symbol angezeigt werden.
    5. Den Dialog mit "OK" verlassen


    Thorsten Dörfler
    Microsoft MVP Visual Basic
    Sonntag, 23. Mai 2010 10:07
    Beantworter
  • Klasse Thorsten,

    das hat jetzt wunderbar geklappt.

    vielleicht darf ich noch eine frage nachschieben

    ist es möglich in diesen zusammenhang auch gleich den Reiter in der Toolbox zu bestimmen und welchem die Komponente auftaucht oder muss man jede Komponente manuell in ihren Reiter schieben?

     

    Ich hoffe ich geh dir mit diesen Fragen nicht auf den Geist

    Gruß Dieter

    Ich werde diese Frage in einem eigenen Thread stellen damit hieraus nicht eine eigene Diskusion entsteht da meine eigentliche Frage ja beantwortet war.

    • Bearbeitet Optiplex01 Sonntag, 23. Mai 2010 18:51 Thread für neue Frage
    • Als Antwort markiert Optiplex01 Sonntag, 23. Mai 2010 18:51
    • Tag als Antwort aufgehoben Optiplex01 Mittwoch, 26. Mai 2010 21:24
    Sonntag, 23. Mai 2010 13:10
  • Hallo Dieter,
    # Als Antwort markiertOptiplex01 vor 31 Minuten

    Nur so als Anmerkung: Als Antwort markiert man normalerweise die Einträge, die die Antwort beinhaltet haben, das dürften hier die beiden Postings von Thorsten gewesen sein. Da die Antworten andersfarbig dargestellt werden, erhöht eine korrekte Zuweisung die Übersichtlichkeit für andere Benutzer, die ggfs. dieselbe oder eine ähnliche Frage haben.

    Es wäre prima, wenn Du noch die richtigen Antworten markieren könntest :)
    Gruß, Stefan
    Microsoft MVP - Visual Developer ASP/ASP.NET
    http://www.asp-solutions.de/ - Consulting, Development
    http://www.aspnetzone.de/ - ASP.NET Zone, die ASP.NET Community
    Sonntag, 23. Mai 2010 19:25
    Moderator