<?xml version="1.0"?>
<?xml-stylesheet href="/App_Themes/Rss/Rss.xsl" type="text/xsl"?>
<rss version="2.0" xmlns:snippetcenter="http://www.snippetcenter.org/">
<channel>
	<title>snippetcenter.org Snippet Feed - Compact Framework</title>
	<link>http://www.snippetcenter.org/</link>
	<description>The newest Snippets in  Compact Framework</description>
	<language>en-us</language>
	<copyright>snippetcenter.org</copyright>
	<generator>Advice: This is a RSS Document for reading in your RSS-Reader. Click here for mor informations.</generator>

	<image>
		<url>http://www.snippetcenter.org/Library/Media/Public/button_88x31.png</url>
		<title>snippetcenter.org</title>
		<link>http://www.snippetcenter.org/</link>
		<width>88</width>
		<height>31</height>
	</image>
	
	<item>
     <title><![CDATA[XML-Config (App.Config) mit dem Compact Framework nutzen]]></title>
     <guid><![CDATA[http://www.snippetcenter.org/en/xml-config-appconfig-mit-dem-compact-framework-nutzen-s1899.aspx]]></guid>
     <pubDate>Mon, 22 May 2006 11:51:00 GMT</pubDate>
     <description><![CDATA[Die Klasse ermöglicht es auf App-Settings gespeichert in einer XML-Datei (hier Config.xml) zuzugreifen und diese auch zu ändern. Damit hat man den idealen und schnelle Datenspeicher für kleine Anwendungs-Einstellungen.

Die Klasse stammt im Original von <a href="http://www.des-eisbaeren-blog.de/Default.aspx?Guid=5a3d089b-b99c-4ead-a6b0-6860c6f18938)">Golo Haas</a> und wurde von mir nur leicht für das Speichern/Ändern der Einstellungen geändert.]]></description>
     <link><![CDATA[http://www.snippetcenter.org/en/xml-config-appconfig-mit-dem-compact-framework-nutzen-s1899.aspx]]></link>
</item>

<item>
     <title><![CDATA[Sanduhr anzeigen]]></title>
     <guid><![CDATA[http://www.snippetcenter.org/en/sanduhr-anzeigen-s24.aspx]]></guid>
     <pubDate>Mon, 24 Apr 2006 00:09:00 GMT</pubDate>
     <description><![CDATA[Da .NET Applikationen auf nem PDA nunmal keine Geschwindigkeitsrekorde brechen, ist es ganz sinnvoll dem User zu zeigen, dass da "im Hintergrund gearbeitet wird":]]></description>
     <link><![CDATA[http://www.snippetcenter.org/en/sanduhr-anzeigen-s24.aspx]]></link>
</item>

<item>
     <title><![CDATA[Vollständige Pfade zu allen Ressourcen eines Projektes]]></title>
     <guid><![CDATA[http://www.snippetcenter.org/en/vollstaendige-pfade-zu-allen-ressourcen-eines-projektes-s23.aspx]]></guid>
     <pubDate>Mon, 24 Apr 2006 00:09:00 GMT</pubDate>
     <description><![CDATA[Eine Übersicht über alle Resourcen im Projekt bekommt man am besten so wie folgend. Das setzt natürlich voraus, dass es eine Listbox namens listBox1 in der Form gibt. Angezeigt bekommt man den vollständigen Namen inkl. Pfad zur Ressource.]]></description>
     <link><![CDATA[http://www.snippetcenter.org/en/vollstaendige-pfade-zu-allen-ressourcen-eines-projektes-s23.aspx]]></link>
</item>

<item>
     <title><![CDATA[Hintergrundbild aus einer Resource laden]]></title>
     <guid><![CDATA[http://www.snippetcenter.org/en/hintergrundbild-aus-einer-resource-laden-s22.aspx]]></guid>
     <pubDate>Mon, 24 Apr 2006 00:07:00 GMT</pubDate>
     <description><![CDATA[Ein Hintergrundbild für seine Form lässt sich wie folgt aus einer eingebetteten Ressource laden - wichtig ist dabei, dass der vollständige Pfad inkl. Namen der Applikation angegeben wird. "Library.Graphics" ist in diesem Fall eine Ordnerstruktur innerhalb des Projektes, "ResourceFile" ist das .resx-File. "MyImage" bezeichnet die Datei in der Resource, wie sie auch im Ressourcen-Editor von Visual Studio zu sehen ist, ohne Dateiendung.]]></description>
     <link><![CDATA[http://www.snippetcenter.org/en/hintergrundbild-aus-einer-resource-laden-s22.aspx]]></link>
</item>

<item>
     <title><![CDATA[Zurück zum Start]]></title>
     <guid><![CDATA[http://www.snippetcenter.org/en/zurueck-zum-start-s18.aspx]]></guid>
     <pubDate>Sun, 23 Apr 2006 23:57:00 GMT</pubDate>
     <description><![CDATA[In einer PDA-Anwendung werden ausgehend von der Start-Form diverse weitere Forms geöffnet, und das in beliebigen Ebenen. So kann man vom Start etwa "Einstellungen" aufrufen, und von da wieder "Über uns". "Über uns" kann aber auch direkt auf der Startform geöffnet werden.

Alle Forms haben aber eins gemeinsam: einen Menüpunkt "Zurück zum Start". Klickt der User diesen an, sollen sich die aktuelle Form sowie alle ihre noch geöffneten Parents schließen - bis auf die Startform.

Ginge man nach obigem Beispiel würde das bei "Start > Einstellungen > Über uns" so aussehen, dass beim Klick auf den Menüpunkt die Form "Über uns" sowie "Einstellungen" geschlossen werden müssen, "Start" als erste Form aber offen bleiben soll, und wieder in den Vordergrund geholt werden muss.

Das klingt erstmal komplizierter, als die Lösung des Problems eigentlich ist. Die Methode Go läuft rekursiv von unten nach oben alle Forms durch. Wenn sie "oben" angekommen ist, sprich kein Parent mehr vorhanden ist, bricht sie ab und holt die oberste Form in den Vordergrund.

Das setzt allerdings voraus, dass die Owner-Eigenschaft gesetzt ist, was per default nicht der Fall ist (nach meinen Tests auch nicht, wenn man die Form via ShowDialog() öffnet, obwohl IntelliSense etwas anderes erzählt). Ein Aufruf muss also wie folgt aussehen:

About a = new About();
a.Owner = this;
a.ShowDialog();

Für den Fall das man eine Form aus einem UserControl heraus öffnet, muss man natürlich die Form verwenden, in der das UserControl sich befindet:
Detail d = new Detail(TypeId);
d.Owner = (Form)this.Parent.Parent;
d.Show();

In diesem Fall befindet sich das UserControl in einem Panel (Parent) was wiederum im eigentlichen Parent, der Form liegt (Parent.Parent).

Last but not least der Aufruf der Funktion zum Schließen:

GoToStart.Go(this);

Auch hier gilt natürlich das Gleiche wie eben erwähnt, beim Aufruf aus einem UserControl muss die Parent-Form genommen werden, ansonsten die aktuelle Instanz (this).]]></description>
     <link><![CDATA[http://www.snippetcenter.org/en/zurueck-zum-start-s18.aspx]]></link>
</item>



</channel>
</rss>
