Feedback

C# - Workaround für den MDIChild-Icon Bug

Veröffentlicht von am 21.01.2009
(3 Bewertungen)
Wenn man mit MDI-Fenstern arbeitet wird einem früher oder später auffallen, dass bei einem von vorneherein maximiertem MDI-Child das Icon nicht richtig in der Menüleiste angezeigt wird. Erst wenn man das Hauptfenster resized wird das Default-Icon gegen das richtige Icon ausgetauscht.
Dieser kleine Workaround behebt das Problem.
Im _MdiChildActivate Ereigniss der MDI-Parentform kann man einfach folgenden Codezeilen einfügen…

Wobei
mainMenu1 der Name des MenuStrip ist
und
mynamespace.Properties.Resources.defaultIcon
ein beliebiges default Icon als Resource

GFU-Schulungen  [Anzeige]

JavaScript für .NET-Entwickler

Sie sind .NET-Entwickler und nun stehen Sie vor der Aufgabe, JavaScript in Ihre Arbeit einzubinden. Die Schulung vermittelt Ihnen die JavaScript Grundlagen und die Funktionen der Scriptsprache. Sie wissen, wie objektorientierte Programmierung in JavaScript funktioniert und lernen abschließend Best Practicies Fälle kennen.

C# Komplett

Sie kennen sich in objektorientierter Programmierung aus. Sie schreiben C++ oder Java? Und nun stehen Sie vor der Aufgabe, in C# Anwendungen zu erstellen. Das C# Komplett-Seminar verschafft Ihnen umfassende Programmierkenntnisse in dieser Sprache. Nach der Schulung entwickeln Sie selbständig Anwendungen mit C#. Sie kennen die Datentypen und Klassenbibliotheken der objektorientierten Programmiersprache C#. Der Komplettkurs setzt bei den Grundlagen von C# ein. Sie arbeiten mit Variablen und konvertieren Typen. Multithreading, Delegates, Generics sind nach dem Seminar für Sie kein Geheimnis mehr.

if (mainMenu1.Items[0].GetType().Name == "SystemMenuItem")
{
	if(ActiveMdiChild != null) 
	{
		mainMenu1.SuspendLayout();
		if (ActiveMdiChild.Icon != null)
		{
			int i = mainMenu1.Height; //Damit bei zu großem Icon die Menüleiste "schön" bleibt
			mainMenu1.Items[0].Image = ActiveMdiChild.Icon.ToBitmap();
			mainMenu1.Height = i;
		}
		else
		{
		        mainMenu1.Items[0].Image = mynamespace.Resources.defaultIcon.ToBitmap();
		}
		mainMenu1.ResumeLayout();
	}
}
Abgelegt unter MDI, MDIChild, Icon, Bug, MdiChildActivate.

Kommentare zum Snippet

 

Logge dich ein, um hier zu kommentieren!