Autor Beitrag
Csharp-programmierer
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 696
Erhaltene Danke: 10

Windows 8.1
C# (VS 2013)
BeitragVerfasst: Di 26.07.16 15:39 
Hallo Community,
ihr kennt bestimmt alle die Menüleiste von den Microsoft Programmen. Diese Menüleiste würde ich sehr gern auch in meinen Projekten verwenden. In einem Betrieb, in dem ich Praktikum gemacht habe, haben sie auch die Menüleiste von den Microsoft Programmen gehabt.

Meine Frage: Wie kann ich in meinen Programmen auch so eine Menüleiste bauen, wie die von den Microsoft Programmen?
Einloggen, um Attachments anzusehen!
_________________
"Wer keinen Sinn im Leben sieht, ist nicht nur unglücklich, sondern kaum lebensfähig" - Albert Einstein
erfahrener Neuling
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 233
Erhaltene Danke: 19

Win 7, Win 10
C#, ASP-MVC (VS 2017 Community), MS SQL, Firebird SQL
BeitragVerfasst: Di 26.07.16 16:10 
Hallo,

ob man da ein bestimmtes Schema verwenden kann weiß ich nicht, aber du könntest einfach deine eigenen Controls kreieren ;)

Ich hatte mir zum Beispiel mal einen PictureButton gemacht, der ein Bild/Icon und darunter Text beinhaltet. Funktioniert dann ansich wie'n normaler Button. Das dann noch alles auf'm Panel schön gemacht und schon hatte ich die für mich passende Menuleiste.

Also DIY geht bei Design-Dingen eigntl immer gut

Gruß Julian
Christian S.
ontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic star
Beiträge: 20451
Erhaltene Danke: 2264

Win 10
C# (VS 2019)
BeitragVerfasst: Di 26.07.16 16:17 
Hallo,

such mal nach Suche bei Google RIBBON CONTROLS WINFORMS. Da sollte man so einiges zu finden. Schau Dir auch mal an, unter welchen Lizenzbedingen man das verwenden darf. Ich meine, es gab da mal Einschränkungen :gruebel:

Grüße
Christian

_________________
Zwei Worte werden Dir im Leben viele Türen öffnen - "ziehen" und "drücken".

Für diesen Beitrag haben gedankt: erfahrener Neuling
erfahrener Neuling
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 233
Erhaltene Danke: 19

Win 7, Win 10
C#, ASP-MVC (VS 2017 Community), MS SQL, Firebird SQL
BeitragVerfasst: Di 26.07.16 16:25 
Wow cool. Hör und sehe grad zum 1. Mal von Ribbons :zustimm:
Vielen Dank dafür
Csharp-programmierer Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 696
Erhaltene Danke: 10

Windows 8.1
C# (VS 2013)
BeitragVerfasst: Di 26.07.16 23:58 
Okay, genau das ist, was ich suche. Aber nun habe ich wieder ein altes Problem. Ich wähle die DLL aus, aber es werden keine Elemente gefunden, die im Werkzeugkasten positioniert werden können. Im Windows Explorer auf diesem Projekt befindet sich diese Bibliothek auch nicht, nachdem ich darauf verwiesen habe :(

_________________
"Wer keinen Sinn im Leben sieht, ist nicht nur unglücklich, sondern kaum lebensfähig" - Albert Einstein
Christian S.
ontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic star
Beiträge: 20451
Erhaltene Danke: 2264

Win 10
C# (VS 2019)
BeitragVerfasst: Mi 27.07.16 00:05 
Was ist denn "die" DLL? Ich habe Dir einen Link zu Google gepostet, das gibt bekanntlich etwas mehr als ein Ergebnis. Woher sollen wir wissen, was Du gerade versuchst zu benutzen? Und schon wieder der Hinweis: Formuliere Deine Fragen so, dass man nicht vor Deinem Rechner sitzen muss, um sie beantworten zu können. :roll:

_________________
Zwei Worte werden Dir im Leben viele Türen öffnen - "ziehen" und "drücken".
Frühlingsrolle
Ehemaliges Mitglied
Erhaltene Danke: 1



BeitragVerfasst: Mi 27.07.16 00:08 
- Nachträglich durch die Entwickler-Ecke gelöscht -
Palladin007
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 1282
Erhaltene Danke: 182

Windows 11 x64 Pro
C# (Visual Studio Preview)
BeitragVerfasst: Mi 27.07.16 00:12 
Aus dem Grund sollte man NuGet nutzen ;)
Zumindest bei mir hat es bisher noch jedes Projekt komplett funktionsfähig unter den Referenzen unter gebracht und auch brav die Abhängigkeiten nachgezogen.

Danach sollte auch der Designer das mit bekommen, wenn nicht, versuch mal einen Neustart von Visual Studio.
Csharp-programmierer Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 696
Erhaltene Danke: 10

Windows 8.1
C# (VS 2013)
BeitragVerfasst: Mi 27.07.16 10:30 
Oh sorry, dass ich vergessen habe die URL von der Downloadseite anzugeben. Hier ist sie

officeribbon.codeple...releases/view/113126
Beide Dateien habe ich gedownloaded. Nur die DLL von dem Ordner Binary habe ich genommen, da ich keine andere DLL gefunden habe: System.Windows.Forms.Ribbon35.dll

Und die nimmt er nicht :motz:

_________________
"Wer keinen Sinn im Leben sieht, ist nicht nur unglücklich, sondern kaum lebensfähig" - Albert Einstein
Th69
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Moderator
Beiträge: 4764
Erhaltene Danke: 1052

Win10
C#, C++ (VS 2017/19/22)
BeitragVerfasst: Mi 27.07.16 11:13 
Ich denke mal "35" steht für .NET 3.5, d.h. wenn du eine neuere .NET-Version nutzt, mußt du selber eine passende DLL erzeugen. Zieh dir einfach die Sourcen, ändere das Target-Framework und lass dir die DLL erzeugen.
Palladin007
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 1282
Erhaltene Danke: 182

Windows 11 x64 Pro
C# (Visual Studio Preview)
BeitragVerfasst: Mi 27.07.16 11:28 
Scheinbar nimmt der das wirklich nicht auf O.o
Probier mal, den Source direkt als Projekt einzubinden, das ist ja das schöne an OpenSource. Dann sollte der das eigentlich kapieren, nachdem es gebuildet wurde.
Wenn es an der .NET-Version liegt (konnte ich so auf die Schnelle nicht bestätigen), dann kannst Du direkt auch die Version hoch stellen und schauen, ob's dann geht.


Als letzte Alternative:
coolthingoftheday.bl...informs-yes-you.html
Hab ich nicht gelesen, nur gefunden.
So wie ich das verstanden habe, wird dort erklärt, wie man die Ribbons über die WinApi nutzt, aber das würde ich nur als letzte Alternative anschauen. Vielleicht wäre es da sowieso besser, auf WPF umzusteigen, da gibt es sogar von Microsoft selber ein Ribbon-Framework.
Csharp-programmierer Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 696
Erhaltene Danke: 10

Windows 8.1
C# (VS 2013)
BeitragVerfasst: Mi 27.07.16 12:24 
Okay, ich werde mir nun selber so etwas basteln. Am besten ginge das ja mit einem userControl. Das habe ich gemacht neues Projekt -> Klassenbibliothek -> userControl hinzufügen
Nun habe ich dieses UserControl in meinen Werkzeugkasten aufgenommen und dieses in einem WindowsForms Projekt hinzugefügt. An sich geht es ja, aber nun würde ich es sehr schön finden, wenn ich die einzelnen Steuerelemente in dem WindowsForms Projekt einzeln mit Events verknüpfen kann. Über die Eigenschaft Modifers habe ich es auch schon versucht :(

_________________
"Wer keinen Sinn im Leben sieht, ist nicht nur unglücklich, sondern kaum lebensfähig" - Albert Einstein
Frühlingsrolle
Ehemaliges Mitglied
Erhaltene Danke: 1



BeitragVerfasst: Mi 27.07.16 12:32 
- Nachträglich durch die Entwickler-Ecke gelöscht -
Csharp-programmierer Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 696
Erhaltene Danke: 10

Windows 8.1
C# (VS 2013)
BeitragVerfasst: Mi 27.07.16 12:52 
Also ich habe die SLN Datei aus SourceCode geöffnet, 4.6 als Zielframework geändert, compilliert. Aber es werden immer noch keine Elemente gefunden, die im Werkzeugkasten positioniert werden können. Aber ich weiß noch nicht ganz, ob man das Ribbon vom rechtlichen her in unserem Programm benutzen kann. Ich bin mehr der Typ, der lieber etwas eigenes macht, anstatt irgendetwas zu benutzen, was ein anderer schonmal gemacht hat.

Mein einziges Problem ist jetzt nur, dass ich in der Klassenbibliothek Benutzersteuerelemente habe, aber auf die einzelnen Controls von diesem UC nicht in einer WinForms Anwendung zugreifen kann.

_________________
"Wer keinen Sinn im Leben sieht, ist nicht nur unglücklich, sondern kaum lebensfähig" - Albert Einstein
erfahrener Neuling
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 233
Erhaltene Danke: 19

Win 7, Win 10
C#, ASP-MVC (VS 2017 Community), MS SQL, Firebird SQL
BeitragVerfasst: Mi 27.07.16 13:02 
Hallo Yannic,

Zitat:
aber auf die einzelnen Controls von diesem UC nicht in einer WinForms Anwendung zugreifen kann.

ähnlich wie bei einer Form kannst du eine Instanz dieses UserControls entweder im Quellcode oder über'n Werkzeugkasten erstellen.
Um auf dessen Komponenten zugreifen zu können, müssen diese auch public sein ;)
Frühlingsrolle
Ehemaliges Mitglied
Erhaltene Danke: 1



BeitragVerfasst: Mi 27.07.16 13:08 
- Nachträglich durch die Entwickler-Ecke gelöscht -
Palladin007
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 1282
Erhaltene Danke: 182

Windows 11 x64 Pro
C# (Visual Studio Preview)
BeitragVerfasst: Mi 27.07.16 13:22 
Eigentlich sollte es reichen, die Referenz zur DLL neu hinzuzufügen
Eventuell muss noch das Projekt neu gebuildet werden.


Zitat:
aber auf die einzelnen Controls von diesem UC nicht in einer WinForms Anwendung zugreifen kann.


Wenn Du das tust, hast Du ganz schnell Abhängigkeiten zwischen deinen Controls, über die Du nicht mehr Herr wirst.
Eigentlich sollte ein Control nicht die Interna eines anderen Controls kennen und die Inhalte deines User Controls zähle ich zu Interna ;)
Csharp-programmierer Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 696
Erhaltene Danke: 10

Windows 8.1
C# (VS 2013)
BeitragVerfasst: Mi 27.07.16 14:27 
Zitat:
Wenn Du das tust, hast Du ganz schnell Abhängigkeiten zwischen deinen Controls, über die Du nicht mehr Herr wirst.
Eigentlich sollte ein Control nicht die Interna eines anderen Controls kennen und die Inhalte deines User Controls zähle ich zu Interna


Das verstehe ich nicht ganz. Angenommen ich habe 5 Buttons auf einem UC. Dann könnte eine Methode dafür sorgen, dass alle Buttons mit dem entsprechenden Event verdrahtet werden. Wenn wir ein Update machen und sich das UserControl ändert, bekomme ich das neue UC und muss dann doch nur noch die neuen Elemente und alles verdrahten, oder? Ich sehe da momentan noch keine Schwierigkeiten :gruebel:

_________________
"Wer keinen Sinn im Leben sieht, ist nicht nur unglücklich, sondern kaum lebensfähig" - Albert Einstein
Ralf Jansen
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 4701
Erhaltene Danke: 991


VS2010 Pro, VS2012 Pro, VS2013 Pro, VS2015 Pro, Delphi 7 Pro
BeitragVerfasst: Mi 27.07.16 15:02 
Zitat:
Angenommen ich habe 5 Buttons auf einem UC. Dann könnte eine Methode dafür sorgen, dass alle Buttons mit dem entsprechenden Event verdrahtet werden.


Wenn du demm UserControl eine Methode gibst über die jemand von außen dann Events verdrahtet ja. Wenn du das so programmierst das du die Interna des UserControls ändern kannst (z.B. die Buttons durch ein Ribbon ersetzt) und die Form/ContainerControl auf dem dieses UserControl liegt selbst nicht geändert werden muß hast du es richtig gemacht.
Csharp-programmierer Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 696
Erhaltene Danke: 10

Windows 8.1
C# (VS 2013)
BeitragVerfasst: Mi 27.07.16 15:37 
Also wir würden es so machen: einer entwickelt das Menü (.dll) und ich verdrahte das alles. Bei einem Update wurde das Menü dann von der Person dementsprechend geändert und ich verdrahte das dann alles neu. So müsste es ja dann eigentlich funktionieren, oder?

_________________
"Wer keinen Sinn im Leben sieht, ist nicht nur unglücklich, sondern kaum lebensfähig" - Albert Einstein