<?xml version="1.0" encoding="UTF-8" ?>
<?xml-stylesheet type="text/xsl" href="https://www.dotnetzone.gr:443/cs/utility/FeedStylesheets/rss.xsl" media="screen"?><rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/" xmlns:wfw="http://wellformedweb.org/CommentAPI/"><channel><title>WinForms</title><link>https://www.dotnetzone.gr:443/cs/forums/12/ShowForum.aspx</link><description>Θέματα για rich client / windows εφαρμογές, σε οποιαδήποτε γλώσσα (VB.NET, C#, managed C++, κ.α.)</description><dc:language>el</dc:language><generator>CommunityServer 2.1 SP3 (Build: 20423.1)</generator><item><title>Απ: Single Instance ενός Component σε μια φόρμα - Πως?</title><link>https://www.dotnetzone.gr:443/cs/forums/thread/14872.aspx</link><pubDate>Tue, 18 Jul 2006 18:23:17 GMT</pubDate><guid isPermaLink="false">2622095e-976c-431a-859e-16783ec7ecd7:14872</guid><dc:creator>mod</dc:creator><slash:comments>0</slash:comments><comments>https://www.dotnetzone.gr:443/cs/forums/thread/14872.aspx</comments><wfw:commentRss>https://www.dotnetzone.gr:443/cs/forums/commentrss.aspx?SectionID=12&amp;PostID=14872</wfw:commentRss><description>&lt;BLOCKQUOTE&gt;&lt;table width="85%"&gt;&lt;tr&gt;&lt;td class="txt4"&gt;&lt;img src="/cs/Themes/default/images/icon-quote.gif"&gt;&amp;nbsp;&lt;strong&gt;evliatsas wrote:&lt;/strong&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td class="quoteTable"&gt;&lt;table width="100%"&gt;&lt;tr&gt;&lt;td valign="top" class="txt4"&gt;Από κάπου καλείς την δημιουργία του Component, κάποιο button Event ή οτιδήποτε. Μπορείς εκεί να εκτελέσεις τον έλεγχο του flag πρίν ξεκινήσεις το instantiate του Component και όχι απλά να απαγορέψεις την προσθήκη του στο Container. Άν και πάλι σου προστίθεται Component στην φόρμα σου, το πιο πιθανό είναι να το καλείς δύο φορές από διαφορετικές πλευρές.&amp;nbsp;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;/BLOCKQUOTE&gt;&lt;br&gt;&lt;br&gt;To construction του component γίνεται από τον form designer του Visual Studio όταν κάνω drag-drop ένα component πάνω στην εκάστοτε φόρμα. Από εκεί και πέρα το τι γίνεται στο runtime δε με απασχολεί (τουλάχιστον όχι τόσο πολύ ακόμα). Αυτό που με ενδιαφέρει είναι όταν σχεδιάζει κάποιος μια φόρμα να μη μπορεί να βάλει πάνω από ένα τέτοιο component σε αυτήν. Είναι δηλαδή καθαρά design-time το θέμα. &lt;br&gt;Από το debugging που εκανα κάνοντας attach ένα άλλο instance του debugger στο visual studio παρατήρησα οτι ενώ καλώ τη μέθοδο DestroyComponent φαίνεται οτι ο designer κρατά κάποιο reference στο τρέχον αντικείμενο και τελικά το ξαναβάζει στη φόρμα σε μεταγενέστερο χρόνο.&lt;br&gt;</description></item><item><title>Απ: Single Instance ενός Component σε μια φόρμα - Πως?</title><link>https://www.dotnetzone.gr:443/cs/forums/thread/14847.aspx</link><pubDate>Mon, 17 Jul 2006 21:16:02 GMT</pubDate><guid isPermaLink="false">2622095e-976c-431a-859e-16783ec7ecd7:14847</guid><dc:creator>infoCENTER</dc:creator><slash:comments>0</slash:comments><comments>https://www.dotnetzone.gr:443/cs/forums/thread/14847.aspx</comments><wfw:commentRss>https://www.dotnetzone.gr:443/cs/forums/commentrss.aspx?SectionID=12&amp;PostID=14847</wfw:commentRss><description>Συγνώμη δεν κατάλαβα ότι ήθελεες αυτό. Αλλά ας μην αφήσουμε ακόμα την τεχνική singleton. Θα μπορούσες να ανεβάσεις τον κώδικα που εξασφαλίζει ότι θα φορτωθεί ένα instance του component σε επίπεδο φόρμας. Έτσι θα μπορούσες να είχες αυτό που ήθελες. Ίσως αυτό να σου κάνει.</description></item><item><title>Απ: Single Instance ενός Component σε μια φόρμα - Πως?</title><link>https://www.dotnetzone.gr:443/cs/forums/thread/14837.aspx</link><pubDate>Mon, 17 Jul 2006 18:58:59 GMT</pubDate><guid isPermaLink="false">2622095e-976c-431a-859e-16783ec7ecd7:14837</guid><dc:creator>evliatsas</dc:creator><slash:comments>0</slash:comments><comments>https://www.dotnetzone.gr:443/cs/forums/thread/14837.aspx</comments><wfw:commentRss>https://www.dotnetzone.gr:443/cs/forums/commentrss.aspx?SectionID=12&amp;PostID=14837</wfw:commentRss><description>&lt;P&gt;&lt;BLOCKQUOTE&gt;&lt;table width="85%"&gt;&lt;tr&gt;&lt;td class="txt4"&gt;&lt;img src="/cs/Themes/default/images/icon-quote.gif"&gt;&amp;nbsp;&lt;strong&gt;mod wrote:&lt;/strong&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td class="quoteTable"&gt;&lt;table width="100%"&gt;&lt;tr&gt;&lt;td valign="top" class="txt4"&gt;κατ'αρχήν αυτό που λες δε μπορεί να γίνει με ενα απλό boolean, το είχα κάνει με ένα static Dictionary(Form, bool) &lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;/BLOCKQUOTE&gt;&lt;/P&gt;
&lt;P&gt;Επειδή ακριβώς δεν γνωρίζω πως έχεις οργανωμένο το namespace σου, το Declaration&amp;nbsp;το έγραψα&amp;nbsp;στην πιο απλή μορφή του, περισσότερο για να εξηγήσω τι εννοούσα με την λέξη "flag".&lt;/P&gt;
&lt;P&gt;&lt;BLOCKQUOTE&gt;&lt;table width="85%"&gt;&lt;tr&gt;&lt;td class="txt4"&gt;&lt;img src="/cs/Themes/default/images/icon-quote.gif"&gt;&amp;nbsp;&lt;strong&gt;mod wrote:&lt;/strong&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td class="quoteTable"&gt;&lt;table width="100%"&gt;&lt;tr&gt;&lt;td valign="top" class="txt4"&gt;αλλά και πάλι δεν είναι λύση γιατί ακόμα και αν δεν τρέξει η εντολή container.Add(this); με κάποιο τρόπο και πάλι μπαίνει το component πανω στη φόρμα&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;/BLOCKQUOTE&gt;&lt;/P&gt;
&lt;P&gt;Από κάπου καλείς την δημιουργία του Component, κάποιο button Event ή οτιδήποτε. Μπορείς εκεί να εκτελέσεις τον έλεγχο του flag πρίν ξεκινήσεις το instantiate του Component και όχι απλά να απαγορέψεις την προσθήκη του στο Container. Άν και πάλι σου προστίθεται Component στην φόρμα σου, το πιο πιθανό είναι να το καλείς δύο φορές από διαφορετικές πλευρές.&amp;nbsp;&lt;/P&gt;</description></item><item><title>Απ: Single Instance ενός Component σε μια φόρμα - Πως?</title><link>https://www.dotnetzone.gr:443/cs/forums/thread/14836.aspx</link><pubDate>Mon, 17 Jul 2006 18:42:29 GMT</pubDate><guid isPermaLink="false">2622095e-976c-431a-859e-16783ec7ecd7:14836</guid><dc:creator>mod</dc:creator><slash:comments>0</slash:comments><comments>https://www.dotnetzone.gr:443/cs/forums/thread/14836.aspx</comments><wfw:commentRss>https://www.dotnetzone.gr:443/cs/forums/commentrss.aspx?SectionID=12&amp;PostID=14836</wfw:commentRss><description>evliatsas το δοκίμασα αρχικά... κατ'αρχήν αυτό που λες δε μπορεί να γίνει με ενα απλό boolean, το είχα κάνει με ένα static Dictionary(Form, bool) αλλά και πάλι δεν είναι λύση γιατί ακόμα και αν δεν τρέξει η εντολή container.Add(this); με κάποιο τρόπο και πάλι μπαίνει το component πανω στη φόρμα!</description></item><item><title>Απ: Single Instance ενός Component σε μια φόρμα - Πως?</title><link>https://www.dotnetzone.gr:443/cs/forums/thread/14823.aspx</link><pubDate>Mon, 17 Jul 2006 07:10:14 GMT</pubDate><guid isPermaLink="false">2622095e-976c-431a-859e-16783ec7ecd7:14823</guid><dc:creator>evliatsas</dc:creator><slash:comments>0</slash:comments><comments>https://www.dotnetzone.gr:443/cs/forums/thread/14823.aspx</comments><wfw:commentRss>https://www.dotnetzone.gr:443/cs/forums/commentrss.aspx?SectionID=12&amp;PostID=14823</wfw:commentRss><description>&lt;P&gt;Θα μπορούσες ίσως να κάνεις κάτι πιο απλό. Να έχεις ένα Flag στην φόρμα σου, το οποίο θα παίρνει την τιμή true την πρώτη φορά που γίνεται add το MyExtender Component. Έπειτα απλά θα κάνεις έλεγχο για την τιμή του Flag και ανάλογα θα επιτρέπεις ή θα απαγορεύεις την προσθήκη του Component.&lt;/P&gt;
&lt;P&gt;π.χ.&lt;/P&gt;
&lt;P&gt;public bool hasExtender;&lt;/P&gt;
&lt;P&gt;&lt;SPAN style="FONT-WEIGHT: normal; FONT-SIZE: 11px; COLOR: blue; FONT-FAMILY: Courier New; BACKGROUND-COLOR: transparent"&gt;public&lt;/SPAN&gt;&lt;FONT face="Courier New"&gt; MyExtender(System.ComponentModel.IContainer container)&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; {&lt;BR&gt;&lt;/FONT&gt;&lt;BR&gt;&lt;FONT face="Courier New"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;if(!hasExtender)&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT face="Courier New"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;{&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT face="Courier New"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; hasExtender=true;&lt;/FONT&gt;&lt;FONT size=2&gt;&lt;FONT face="Courier New"&gt;&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; container.Add(&lt;SPAN style="FONT-WEIGHT: normal; FONT-SIZE: 11px; COLOR: blue; FONT-FAMILY: Courier New; BACKGROUND-COLOR: transparent"&gt;this&lt;/SPAN&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT face="Courier New"&gt;);&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; InitializeComponent();&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT face="Courier New"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;/FONT&gt;&lt;/P&gt;</description></item><item><title>Απ: Single Instance ενός Component σε μια φόρμα - Πως?</title><link>https://www.dotnetzone.gr:443/cs/forums/thread/14754.aspx</link><pubDate>Fri, 14 Jul 2006 23:35:58 GMT</pubDate><guid isPermaLink="false">2622095e-976c-431a-859e-16783ec7ecd7:14754</guid><dc:creator>mod</dc:creator><slash:comments>0</slash:comments><comments>https://www.dotnetzone.gr:443/cs/forums/thread/14754.aspx</comments><wfw:commentRss>https://www.dotnetzone.gr:443/cs/forums/commentrss.aspx?SectionID=12&amp;PostID=14754</wfw:commentRss><description>infoCENTER αν διαβάσεις τον κώδικα θα δεις οτι στην πρώτη περίπτωση εγώ υψώνω το exception προκειμένου να το πιάσει ο Form Designer και να μην αφήσει το νέο component να μπει στη φόρμα. &lt;br /&gt;
&lt;br /&gt;
Η singleton δεν είναι λύση για το συγκεκριμένο πρόβλημα, αφού θέλω να υπάρχουν πολλά διαφορετικά instances του component - τόσο στην ίδια όσο και σε διαφορετικές εφαρμογές -, απλά θέλω να διασφαλίσω οτι θα μπορεί να μπει μόνο ένα instance πάνω σε κάθε φόρμα.</description></item><item><title>Απ: Single Instance ενός Component σε μια φόρμα - Πως?</title><link>https://www.dotnetzone.gr:443/cs/forums/thread/14724.aspx</link><pubDate>Fri, 14 Jul 2006 19:51:45 GMT</pubDate><guid isPermaLink="false">2622095e-976c-431a-859e-16783ec7ecd7:14724</guid><dc:creator>infoCENTER</dc:creator><slash:comments>0</slash:comments><comments>https://www.dotnetzone.gr:443/cs/forums/thread/14724.aspx</comments><wfw:commentRss>https://www.dotnetzone.gr:443/cs/forums/commentrss.aspx?SectionID=12&amp;PostID=14724</wfw:commentRss><description>Σχετικά με τον πρώτο τρόπο για να μην σου βγάζει το μήνυμα στον designer όπως αναφέρεις βάλε τον κώδικα σε ένα Try...Catch block. Έτσι γίνεται στην VB. Στην C# δεν γνωρίζω. &lt;br /&gt;
&lt;br /&gt;
Υπάρχει και μία άλλη λύση αν θέλεις να δοκιμάσεις. Μπορείς να διαβάσεις περισσότερα για αυτήν μέσα εδώ, σε αυτό το site και αν θέλεις να το ψάξεις στο internet διάβασε για την τεχνική singleton. &lt;br /&gt;
&lt;br /&gt;</description></item><item><title>Single Instance ενός Component σε μια φόρμα - Πως?</title><link>https://www.dotnetzone.gr:443/cs/forums/thread/14707.aspx</link><pubDate>Fri, 14 Jul 2006 05:49:50 GMT</pubDate><guid isPermaLink="false">2622095e-976c-431a-859e-16783ec7ecd7:14707</guid><dc:creator>mod</dc:creator><slash:comments>0</slash:comments><comments>https://www.dotnetzone.gr:443/cs/forums/thread/14707.aspx</comments><wfw:commentRss>https://www.dotnetzone.gr:443/cs/forums/commentrss.aspx?SectionID=12&amp;PostID=14707</wfw:commentRss><description>Προσπαθώ αυτές τις μέρες να φτιάξω ένα Component το οποίο υλοποιεί το IExtenderProvider. Έχω τελειώσει με τα βασικά κομμάτια (CanExtend, Get/Set, UITypeEditors κλπ). Το θέμα είναι οτι προσπαθώ τώρα να το αλλάξω έτσι ώστε να μη μπορεί πάνω από ένα instance του πάνω σε κάθε φόρμα. Κατέληξα στις δύο παρακάτω λύσεις:&lt;br&gt;&lt;br&gt;&lt;span style="color: Black;background-color: Transparent;font-family: Courier New;font-size: 11px;font-weight: normal;"&gt;    &lt;span style="color: Blue;background-color: Transparent;font-family: Courier New;font-size: 11px;font-weight: normal;"&gt;public&lt;/span&gt; MyExtender(System.ComponentModel.IContainer container)&lt;br /&gt;    {&lt;br /&gt;            &lt;span style="color: Green;background-color: Transparent;font-family: Courier New;font-size: 11px;font-weight: normal;"&gt;///&lt;/span&gt;&lt;br /&gt;            &lt;span style="color: Green;background-color: Transparent;font-family: Courier New;font-size: 11px;font-weight: normal;"&gt;/// Required for Windows.Forms Class Composition Designer support&lt;/span&gt;&lt;br /&gt;            &lt;span style="color: Green;background-color: Transparent;font-family: Courier New;font-size: 11px;font-weight: normal;"&gt;///&lt;/span&gt;&lt;br /&gt;           &lt;span style="color: Blue;background-color: Transparent;font-family: Courier New;font-size: 11px;font-weight: normal;"&gt;foreach&lt;/span&gt; (Component c &lt;span style="color: Blue;background-color: Transparent;font-family: Courier New;font-size: 11px;font-weight: normal;"&gt;in&lt;/span&gt; container.Components)&lt;br /&gt;            {&lt;br /&gt;                &lt;span style="color: Blue;background-color: Transparent;font-family: Courier New;font-size: 11px;font-weight: normal;"&gt;if&lt;/span&gt; (c &lt;span style="color: Blue;background-color: Transparent;font-family: Courier New;font-size: 11px;font-weight: normal;"&gt;is&lt;/span&gt; MyExtender)&lt;br /&gt;                {&lt;br /&gt;                    &lt;span style="color: Blue;background-color: Transparent;font-family: Courier New;font-size: 11px;font-weight: normal;"&gt;throw&lt;/span&gt; &lt;span style="color: Blue;background-color: Transparent;font-family: Courier New;font-size: 11px;font-weight: normal;"&gt;new&lt;/span&gt; InvalidOperationException(&lt;span style="color: #666666;background-color: #e4e4e4;font-family: Courier New;font-size: 11px;font-weight: normal;"&gt;"Only one instance of MyItemExtender is allowed per Container"&lt;/span&gt;);&lt;br /&gt;                }&lt;br /&gt;            }&lt;br /&gt;            container.Add(&lt;span style="color: Blue;background-color: Transparent;font-family: Courier New;font-size: 11px;font-weight: normal;"&gt;this&lt;/span&gt;);&lt;br /&gt;            InitializeComponent();&lt;br /&gt;    }&lt;/span&gt;&lt;br&gt;&lt;br&gt;&lt;span style="color: Black;background-color: Transparent;font-family: Courier New;font-size: 11px;font-weight: normal;"&gt;    &lt;span style="color: Blue;background-color: Transparent;font-family: Courier New;font-size: 11px;font-weight: normal;"&gt;public&lt;/span&gt; MyExtender(System.ComponentModel.IContainer container)&lt;br /&gt;    {&lt;br /&gt;            &lt;span style="color: Green;background-color: Transparent;font-family: Courier New;font-size: 11px;font-weight: normal;"&gt;///&lt;/span&gt;&lt;br /&gt;            &lt;span style="color: Green;background-color: Transparent;font-family: Courier New;font-size: 11px;font-weight: normal;"&gt;/// Required for Windows.Forms Class Composition Designer support&lt;/span&gt;&lt;br /&gt;            &lt;span style="color: Green;background-color: Transparent;font-family: Courier New;font-size: 11px;font-weight: normal;"&gt;///&lt;/span&gt;&lt;br /&gt;            &lt;span style="color: Blue;background-color: Transparent;font-family: Courier New;font-size: 11px;font-weight: normal;"&gt;bool&lt;/span&gt; mustDestroy &lt;span style="color: Red;background-color: Transparent;font-family: Courier New;font-size: 11px;font-weight: normal;"&gt;=&lt;/span&gt; &lt;span style="color: Blue;background-color: Transparent;font-family: Courier New;font-size: 11px;font-weight: normal;"&gt;false&lt;/span&gt;;&lt;br /&gt;&lt;br /&gt;            &lt;span style="color: Blue;background-color: Transparent;font-family: Courier New;font-size: 11px;font-weight: normal;"&gt;foreach&lt;/span&gt; (Component c &lt;span style="color: Blue;background-color: Transparent;font-family: Courier New;font-size: 11px;font-weight: normal;"&gt;in&lt;/span&gt; container.Components)&lt;br /&gt;            {&lt;br /&gt;                &lt;span style="color: Blue;background-color: Transparent;font-family: Courier New;font-size: 11px;font-weight: normal;"&gt;if&lt;/span&gt; (c &lt;span style="color: Blue;background-color: Transparent;font-family: Courier New;font-size: 11px;font-weight: normal;"&gt;is&lt;/span&gt; MyExtender)&lt;br /&gt;                {&lt;br /&gt;                    MessageBox.Show(&lt;span style="color: #666666;background-color: #e4e4e4;font-family: Courier New;font-size: 11px;font-weight: normal;"&gt;"Only one instance of&lt;br /&gt;MyItemExtender is allowed per Container"&lt;/span&gt;, &lt;span style="color: #666666;background-color: #e4e4e4;font-family: Courier New;font-size: 11px;font-weight: normal;"&gt;"Error"&lt;/span&gt;,&lt;br /&gt;MessageBoxButtons.OK, MessageBoxIcon.Exclamation);&lt;br /&gt;                    mustDestroy &lt;span style="color: Red;background-color: Transparent;font-family: Courier New;font-size: 11px;font-weight: normal;"&gt;=&lt;/span&gt; &lt;span style="color: Blue;background-color: Transparent;font-family: Courier New;font-size: 11px;font-weight: normal;"&gt;true&lt;/span&gt;;&lt;br /&gt;                    &lt;span style="color: Blue;background-color: Transparent;font-family: Courier New;font-size: 11px;font-weight: normal;"&gt;break&lt;/span&gt;;&lt;br /&gt;                }&lt;br /&gt;            }&lt;br /&gt;            &lt;span style="color: Blue;background-color: Transparent;font-family: Courier New;font-size: 11px;font-weight: normal;"&gt;if&lt;/span&gt; (mustDestroy)&lt;br /&gt;            {&lt;br /&gt;                container.Remove(&lt;span style="color: Blue;background-color: Transparent;font-family: Courier New;font-size: 11px;font-weight: normal;"&gt;this&lt;/span&gt;);&lt;br /&gt;                IDesignerHost host &lt;span style="color: Red;background-color: Transparent;font-family: Courier New;font-size: 11px;font-weight: normal;"&gt;=&lt;/span&gt; container &lt;span style="color: Blue;background-color: Transparent;font-family: Courier New;font-size: 11px;font-weight: normal;"&gt;as&lt;/span&gt; IDesignerHost;&lt;br /&gt;                &lt;span style="color: Blue;background-color: Transparent;font-family: Courier New;font-size: 11px;font-weight: normal;"&gt;if&lt;/span&gt; (host !&lt;span style="color: Red;background-color: Transparent;font-family: Courier New;font-size: 11px;font-weight: normal;"&gt;=&lt;/span&gt; &lt;span style="color: Blue;background-color: Transparent;font-family: Courier New;font-size: 11px;font-weight: normal;"&gt;null&lt;/span&gt;)&lt;br /&gt;                {&lt;br /&gt;                    host.DestroyComponent(&lt;span style="color: Blue;background-color: Transparent;font-family: Courier New;font-size: 11px;font-weight: normal;"&gt;this&lt;/span&gt;);&lt;br /&gt;                }&lt;br /&gt;                &lt;span style="color: Blue;background-color: Transparent;font-family: Courier New;font-size: 11px;font-weight: normal;"&gt;return&lt;/span&gt;;&lt;br /&gt;            }&lt;br /&gt;            &lt;span style="color: Blue;background-color: Transparent;font-family: Courier New;font-size: 11px;font-weight: normal;"&gt;else&lt;/span&gt;&lt;br /&gt;            {&lt;br /&gt;                container.Add(&lt;span style="color: Blue;background-color: Transparent;font-family: Courier New;font-size: 11px;font-weight: normal;"&gt;this&lt;/span&gt;);&lt;br /&gt;            }&lt;br /&gt;            InitializeComponent();&lt;br /&gt;    }&lt;/span&gt;&lt;br&gt;&lt;br&gt;Με λίγα λόγια στην πρώτη περίπτωση πετάω κατευθειαν Exception αν βρω κάποιο άλλο component του ίδιου τύπου στον container ενώ στην άλλη αν βρω κάποιο άλλο Instance ζητάω από τον container &amp;amp; designer να το αφαιρέσουν.&lt;br&gt;&lt;br&gt;Το πρόβλημα είναι οτι η πρώτη λύση δουλεύει από την άποψη οτι τελικά δεν προστίθεται νέο component στη φόρμα αλλά έχει το ελάττωμα οτι το Exception συλαμβάνεται από τον Designer και εμφανίζεται ένα MessageBox με stack trace. H δεύτερη λύση από την άλλη μου φαίνεται πιο σωστή και ειδοποιεί το χρήστη με το κατάλληλο μήνυμα αλλά τελικά προστίθεται ένα νέο component (Και μάλιστα non-initialized) στη φορμα. Υπάρχει μήπως καμιά καλύτερη λύση για να μην αναγκάζομαι να πετάω εξαίρεση και παράλληλα να μην προστίθεται το component στη φόρμα?&lt;br&gt;</description></item></channel></rss>