Extended Messagebox-Lib

    • Beta

    Es gibt 13 Antworten in diesem Thema. Der letzte Beitrag () ist von faxe1008.

      Extended Messagebox-Lib

      Name der Library:
      Messagebox-Lib

      Beschreibung:
      Mithilfe der Lib kann man seine Messagebox individuell gestallten, z.b. Buttonbeschriftung oder Icon der Meldung

      Screenshot(s):



      Verwendete Programmiersprache und IDE:
      Visual Basic .NET IDE: VB 2008 Express

      Systemanforderungen:
      .NET Framework 3.5

      Download:
      Messagebox-Lib.dll

      Lizenz/Weitergabe:
      Freeware
      Einkompileren erlaubt, Nennung erwünscht
      Dekompilieren untersagt

      Warum sollte man die Lib verwenden?:
      Vieles kann angepasst werden (im gegensatz zur normalen Msgbox) zb. Farbverlauf und es ist übersichtlicher als sich jedes mal selbst eine Form für eine Messagebox zu basteln. Außerdem sucht sich die Messageboc die optimale Größe von allein.

      Beispiel Code:
      Spoiler anzeigen

      VB.NET-Quellcode

      1. Imports System.Drawing
      2. Public Class Form1
      3. Public WithEvents MyMessagebox As New Messagebox_Lib.Messagebox
      4. Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
      5. MyMessagebox.Anzahl_Buttons = 2 ' Button Anzahl festlegen (1-3)
      6. MyMessagebox.Button1_Beschriftung = "Bestätigen" 'erster Button
      7. MyMessagebox.Button2_Beschriftung = "" 'zweiter Button
      8. MyMessagebox.Button3_Beschriftung = "Ablehnen" 'dritter Button
      9. MyMessagebox.Icon = My.Resources.maintenance
      10. MyMessagebox.Image = My.Resources.maintenance_icon
      11. MyMessagebox.Farbverlauf(Color.White, Color.DarkGray, Drawing2D.LinearGradientMode.Vertical) 'Farbverlauf optional
      12. MyMessagebox.Meldung = "Sollen die Änderungen vorgenommen werden?" 'Überschrift
      13. MyMessagebox.Überschrift = "Einstellungen" ' o.ä.
      14. MyMessagebox.Fade = True 'Einblendeffekt
      15. MyMessagebox.Show()
      16. End Sub
      17. Private Sub MyMessagebox_Returning_Result(ByVal content As Object) Handles MyMessagebox.Returning_Result
      18. Label1.Text = MyMessagebox.Returned_Result 'Gibt Text des angeklickten Buttons zurück
      19. End Sub
      20. End Class


      Changelog:
      -ersten kleinen Bug behoben (automatische Formgröße)
      - 31.12.2012 erstes Upadte: Inputbox hinzugefügt und noch ein paar Bugs gefixt.

      8-) faxe1008 8-)

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

      faxe1008 schrieb:

      Außerdem sucht sich die Messageboc die optimale Größe von allein.

      Wie funktioniert das genau? Windows macht das so:

      The Old New Thing schrieb:

      The new algorithm merely adds another option to the table of choices:

      the width of the longest line,
      278 DLU,
      5/8 of the width of the working area,
      3/4 of the width of the working area,
      7/8 of the width of the working area,


      Übrigens wäre es cool, wenn man für die BUttons einen eigenen Renderer übergeben kann, um sie zu stylen :)

      Skybird schrieb:

      Das sind ja Ubisoftmethoden hier !

      @backtothetoast:
      Ich verwende eigentlich die normalen Buttons aus der Toolbox, aber die werden trotzdem "eckig". Ich habe keine Ahnung warum ?(

      @vb-checker:
      die optimale größe wird anhand von der Größe der Überschrift etc. berechnet.
      Hast du die Lib getestet? sind irgendwelche Bugs vorhanden?
      Deine Idee mit dem Renderer ist vorgemerkt :D

      Hab außerdem noch vor eine Input-Box hinzuzufügen. Falls jemand noch Erweiterungs Ideen hat, her damit :D .

      Update vorraussichtlich morgen
      kleine Vorrausschau (hab noch was dran zu arbeiten):

      8-) faxe1008 8-)

      Dieser Beitrag wurde bereits 4 mal editiert, zuletzt von „faxe1008“ ()

      Update:
      Inputbox hinzugefügt
      - auch im Style anpassbar
      - linker button im Formular gibt eingegebenen Wert im Returned_Result Property zurück, rechter Button ist zum Abbrechen Nothing wird als wert zurückgegeben
      - Buttonbeschriftung frei wählbar

      Downloadlink:
      Messagebox-Lib.dll

      Spoiler anzeigen

      VB.NET-Quellcode

      1. Public WithEvents MyInputbox As New Messagebox_Lib.Inputbox
      2. MyInputbox.Image = My.Resources.Name
      3. MyInputbox.Icon = My.Resources.Document
      4. MyInputbox.Aufforderung = "Dateiname:"
      5. MyInputbox.Farbverlauf(Color.White, Color.Silver, Drawing2D.LinearGradientMode.Vertical) 'Farbverlauf optional
      6. MyInputbox.Fade = True
      7. MyInputbox.ShowDialog()


      Freu mich schon auf ausfürliche Testberichte ;) .

      8-) faxe1008 8-)
      Es fallen mir beim Anschauen des Codes 2 Dinge auf:

      1.)
      Auch wenn wir hier in einem deutschen Forum sind und hauptsächlich Forums-Mitglieder dieses Library benutzen, halte ich doch für Notwendig, englische Begriffe zu nutzen.
      Dann, z.B. bei der Fade und Image Prozedur benutzt du schon wieder englische Begriffe.

      2.)
      Warum machst du aus den verschiedenen Button Variablen nicht ein Array. Das wäre deutlich programmierfreundlicher.


      Gruß, Jan
      Die Library ist prinzipiell total fürn Arsch.
      Eine Messagebox passt sich an den Text und an gewählte Icons an, und lässt sich über MessageBox.Show(Parameter) aufrufen.
      DU solltest also eine Erweiterung im selben Stil wie die normale MessageBox programmieren,
      und die Klasse dann mit dem Stammnamespace System.Windows.Forms.MessageBox liefern,
      sodass MessageBox.ShowExt oder co. möglich werden. 2teres ist optional ;)

      Grüße
      "Life isn't about winning the race. Life is about finishing the race and how many people we can help finish the race." ~Marc Mero

      Nun bin ich also auch soweit: Keine VB-Fragen per PM! Es gibt hier ein Forum, verdammt!
      Bin gerade damit beschäftigt das Denglisch zu beseitigen und pures Englisch zu verwenden wie J-F angebracht hat. Außerdem pack ich die Beschriftungen in ein Array.

      EDIT: nun wieder "runde" Buttons

      8-) faxe1008 8-)

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

      Wunderschön wie du Nikx ignorierst.
      Mfg: Gather
      Private Nachrichten bezüglich VB-Fragen werden Ignoriert!


      Nun, halte dich einfach an den MessageBox-Style. Teste die normale ein wenig und baue sie nach.
      Grüße
      "Life isn't about winning the race. Life is about finishing the race and how many people we can help finish the race." ~Marc Mero

      Nun bin ich also auch soweit: Keine VB-Fragen per PM! Es gibt hier ein Forum, verdammt!
      Naja an sich wäre des schon eine Heruasforderung, aber wenn ich bisheriges nur "nachbaue" was ist daran dann "extended"? Das einzige was ich noch optional dazubauen werde ist die ExtMsgb.show() Methode um dem Original "näher" zu kommen, die einstellungsmöglichkeiten über propertys verbleiben jeodch.

      EDIT//:Achja morgen kommt das update

      8-) faxe1008 8-)
      Nein. MessageboxExtn.Show

      Und der Vorteil an der Sache ist ja, wenn du das Messagebox Design nachbaust,
      man aber mehr Sachen ändern bzw. einstellen kann wäre das eindeutig hilfreicher.

      Siehe man will ein Spezifisches Icon, jedoch das normale Messagebox design.
      Mfg: Gather
      Private Nachrichten bezüglich VB-Fragen werden Ignoriert!


      @Gather:
      Und der Vorteil an der Sache ist ja, wenn du das Messagebox Design nachbaust,
      man aber mehr Sachen ändern bzw. einstellen kann wäre das eindeutig hilfreicher.

      Siehe man will ein Spezifisches Icon, jedoch das normale Messagebox design.


      OK werde deinen Ratschlag beherzigen, habe allerdings keine Ahnung wie man seine Lib in Stammnamespaces eingliedert ?(

      8-) faxe1008 8-)