<?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>Πρώτα Βήματα - Desktop Applications</title><link>https://www.dotnetzone.gr:443/cs/forums/80/ShowForum.aspx</link><description>Θέματα για όσους φτιάχνουν τα πρώτα τους Desktop Applications σε .NET Framework</description><dc:language>el</dc:language><generator>CommunityServer 2.1 SP3 (Build: 20423.1)</generator><item><title>Απ: Το γενικό control δεν έχει property Checked. Τότε πως το τσεκάρω?</title><link>https://www.dotnetzone.gr:443/cs/forums/thread/59986.aspx</link><pubDate>Tue, 14 Sep 2010 04:16:37 GMT</pubDate><guid isPermaLink="false">2622095e-976c-431a-859e-16783ec7ecd7:59986</guid><dc:creator>sakis_drm</dc:creator><slash:comments>0</slash:comments><comments>https://www.dotnetzone.gr:443/cs/forums/thread/59986.aspx</comments><wfw:commentRss>https://www.dotnetzone.gr:443/cs/forums/commentrss.aspx?SectionID=80&amp;PostID=59986</wfw:commentRss><description>Το συγκεκριμένο κομμάτι κώδικα είχε γραφτεί πολύ "στο πόδι" και επειδή είδαμε ότι &lt;i&gt;παίζει&amp;nbsp; &lt;/i&gt;εκείνη τη στιγμή προχωρήσαμε παρακάτω... κλασσική γενησιουργός αιτία των bugs !&amp;nbsp;Ευχαριστώ πολύ για τις οδηγίες σας, οι οποίες αποτελούν αφορμή για περισσότερη μελέτη, στο άμεσο μέλλον&amp;nbsp;&lt;img src="http://www.dotnetzone.gr/cs/emoticons/emotion-1.gif" alt="Smile" /&gt;</description></item><item><title>Απ: Το γενικό control δεν έχει property Checked. Τότε πως το τσεκάρω?</title><link>https://www.dotnetzone.gr:443/cs/forums/thread/59983.aspx</link><pubDate>Mon, 13 Sep 2010 18:35:32 GMT</pubDate><guid isPermaLink="false">2622095e-976c-431a-859e-16783ec7ecd7:59983</guid><dc:creator>Μπλουγουράς Γιάννης</dc:creator><slash:comments>0</slash:comments><comments>https://www.dotnetzone.gr:443/cs/forums/thread/59983.aspx</comments><wfw:commentRss>https://www.dotnetzone.gr:443/cs/forums/commentrss.aspx?SectionID=80&amp;PostID=59983</wfw:commentRss><description>Δεν πρόσεξα ότι είχε ήδη απαντήσει ο Παναγιώτης, φυσικά συμφωνώ μαζί του.&lt;br&gt;</description></item><item><title>Απ: Το γενικό control δεν έχει property Checked. Τότε πως το τσεκάρω?</title><link>https://www.dotnetzone.gr:443/cs/forums/thread/59982.aspx</link><pubDate>Mon, 13 Sep 2010 18:23:41 GMT</pubDate><guid isPermaLink="false">2622095e-976c-431a-859e-16783ec7ecd7:59982</guid><dc:creator>Μπλουγουράς Γιάννης</dc:creator><slash:comments>0</slash:comments><comments>https://www.dotnetzone.gr:443/cs/forums/thread/59982.aspx</comments><wfw:commentRss>https://www.dotnetzone.gr:443/cs/forums/commentrss.aspx?SectionID=80&amp;PostID=59982</wfw:commentRss><description>Καλησπέρα,&lt;br&gt;&lt;br&gt;ενημερωτικά:&lt;br&gt;&lt;br&gt;ο τελεστής '==' λειτουργεί διαφορετικά για value types,Reference types.&lt;br&gt;&lt;br&gt;Όταν κάνουμε χρήση του τελεστή '==' σε μεταβλήτη τύπου object θα κάνει χρήση εσωτερικά την ReferenceEquals.&lt;br&gt;&lt;br&gt;Όταν κάνουμε χρήση του τελεστή '==' σε μεταβλήτη τύπου string θα κάνει χρήση εσωτερικά την Equals.&lt;br&gt;
&lt;br&gt;&lt;br&gt;&lt;br&gt;Οι δύο παρακάτω τιμές έχουν την ίδια τιμή "sss".&lt;br&gt;var str1 = new string('s', 3); &lt;br&gt;var str2 = new string('s',3);&lt;br&gt;&lt;br&gt;&lt;br&gt;//Με την ReferenceEquals οι δύο μεταβλητές str1 και str2 δίνουν το αποτέλεσμα false, διότι οι μεταβλητές τύπου string είναι reference types και ελέγχουμε αν η διεύθυνση των μεταβλητών δείχνει στο ίδιο σημείο στην μνήμη.&lt;br&gt;var boulValue=ReferenceEquals(str1, str2) //false&lt;br&gt;&lt;br&gt;//Παρακάτω η ReferenceEquals δίνει αποτέλεσμα true , διότι το CLR κάνει χρήση ενός μηχανισμού που ονομάζεται &lt;b&gt;string interning&lt;/b&gt;. http://en.wikipedia.org/wiki/String_interning&lt;br&gt;var str1 = "sss"; &lt;br&gt;var str2 = "sss";&lt;br&gt;var boulValue=ReferenceEquals(str1, str2) //true &lt;br&gt;&lt;br&gt;Λίγο προσοχή με την referenceEquals.&lt;br&gt;&lt;br&gt;Για να ελέγχεις για αν oi τιμές δύο μεταβλητών τύπου string έχουν την ίδια τιμή μπορείς να κάνεις χρήση και την .Equals.&lt;br&gt;var str1 = "Checkme";&lt;br&gt;var boulValue= str1.Equals(str2)&lt;br&gt;&lt;br&gt;&lt;br&gt;&lt;br&gt;</description></item><item><title>Απ: Το γενικό control δεν έχει property Checked. Τότε πως το τσεκάρω?</title><link>https://www.dotnetzone.gr:443/cs/forums/thread/59980.aspx</link><pubDate>Mon, 13 Sep 2010 17:52:49 GMT</pubDate><guid isPermaLink="false">2622095e-976c-431a-859e-16783ec7ecd7:59980</guid><dc:creator>Παναγιώτης Καναβός</dc:creator><slash:comments>0</slash:comments><comments>https://www.dotnetzone.gr:443/cs/forums/thread/59980.aspx</comments><wfw:commentRss>https://www.dotnetzone.gr:443/cs/forums/commentrss.aspx?SectionID=80&amp;PostID=59980</wfw:commentRss><description>Αντί γι αυτό, κάνε τον απλούστατο έλεγχο: if (ctl.Tag != null). Η χρήση του ReferenceEquals είναι εντελώς περιττή και απλά δεν κάνει αυτό που νομίζεις. Αντί να ελέγχει αν το περιεχόμενο των string είναι ίδιο, ελέγχει αν είναι το ίδιο string instance. Στην περίπτωση σου ΕΤΥΧΕ να είναι ίδια, γιατί το .NET δημιουργεί μόνο ένα instance για κάθε string που δημιουργείται στον κώδικα. Αν π.χ. το tag έπαιρνε τιμή από κάποιο textbox, το ReferenceEquals θα αποτύγχανε.&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;Γενικά, νομίζω ότι πρέπει να δώσεις λίγη προσοχή στους τύπους και πως δουλεύει το casting, &amp;nbsp;γιατί κόλπα όπως το GetType().Name, ή το ReferenceEquals είναι και περιττά και οδηγούν σε προβλήματα.&amp;nbsp;&lt;/div&gt;</description></item><item><title>Απ: Το γενικό control δεν έχει property Checked. Τότε πως το τσεκάρω?</title><link>https://www.dotnetzone.gr:443/cs/forums/thread/59973.aspx</link><pubDate>Mon, 13 Sep 2010 04:39:56 GMT</pubDate><guid isPermaLink="false">2622095e-976c-431a-859e-16783ec7ecd7:59973</guid><dc:creator>sakis_drm</dc:creator><slash:comments>0</slash:comments><comments>https://www.dotnetzone.gr:443/cs/forums/thread/59973.aspx</comments><wfw:commentRss>https://www.dotnetzone.gr:443/cs/forums/commentrss.aspx?SectionID=80&amp;PostID=59973</wfw:commentRss><description>Ενημερωτικά το :&lt;br&gt;if (ctrl.Tag.ToString() == "CheckMe") &lt;br&gt;{ ...}&lt;br&gt;Σκάει το κλασσικό object reference not set to an instance of an object...&lt;br&gt;&lt;br&gt;γι αυτό χρησιμοποιώ το εξής:&lt;br&gt;&lt;br&gt;if (ReferenceEquals(ctrl.Tag, "CheckMe")) &lt;br&gt;{ ... }&lt;br&gt;</description></item><item><title>Απ: Το γενικό control δεν έχει property Checked. Τότε πως το τσεκάρω?</title><link>https://www.dotnetzone.gr:443/cs/forums/thread/59972.aspx</link><pubDate>Mon, 13 Sep 2010 02:04:44 GMT</pubDate><guid isPermaLink="false">2622095e-976c-431a-859e-16783ec7ecd7:59972</guid><dc:creator>sakis_drm</dc:creator><slash:comments>0</slash:comments><comments>https://www.dotnetzone.gr:443/cs/forums/thread/59972.aspx</comments><wfw:commentRss>https://www.dotnetzone.gr:443/cs/forums/commentrss.aspx?SectionID=80&amp;PostID=59972</wfw:commentRss><description>Η εξωτερική παρένθεση έκανε τη διαφορά ! &lt;br&gt;Αυτό που έγραφα ήταν το εξής :&lt;span style="color:Black;background-color:Transparent;font-family:Courier New;font-size:11px;font-weight:normal;"&gt;&lt;br&gt;&lt;br&gt;(CheckBox)(ctrl).&lt;font color="#ff0000"&gt;Checked &lt;/font&gt;&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;/span&gt;&lt;br&gt;&lt;br&gt;Και ήταν λογικό το παράπονο του.&lt;br&gt;&lt;br&gt;Επίσης να σημειωθεί και η βελτίωση στην αναγνωσιμότητα με την χρήση του τελεστή is.&lt;br&gt;&lt;br&gt;LINQ πρέπει κάποια στιγμή να μάθουμε.. thanks για την επιπλέον αναφορά!&lt;br&gt;</description></item><item><title>Απ: Το γενικό control δεν έχει property Checked. Τότε πως το τσεκάρω?</title><link>https://www.dotnetzone.gr:443/cs/forums/thread/59971.aspx</link><pubDate>Mon, 13 Sep 2010 01:52:36 GMT</pubDate><guid isPermaLink="false">2622095e-976c-431a-859e-16783ec7ecd7:59971</guid><dc:creator>Μπλουγουράς Γιάννης</dc:creator><slash:comments>0</slash:comments><comments>https://www.dotnetzone.gr:443/cs/forums/thread/59971.aspx</comments><wfw:commentRss>https://www.dotnetzone.gr:443/cs/forums/commentrss.aspx?SectionID=80&amp;PostID=59971</wfw:commentRss><description>&amp;nbsp;&lt;br&gt;private void DoSomethingToControls1(Control parentControl)&lt;br&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; &lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; foreach (Control ctrl in parentControl.Controls)&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; {&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;&amp;nbsp;&amp;nbsp; if (ctrl is CheckBox)&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;&amp;nbsp;&amp;nbsp; {&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;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; if (ctrl.Tag.ToString()=="Checkme")&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;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; {&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;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ((CheckBox)(ctrl)).Checked=true;&amp;nbsp;&amp;nbsp; //Casting σε CheckBox&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;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&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;&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;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;br&gt;&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;br&gt;}&lt;br&gt;&lt;br&gt;//Το ίδιο με Linq!!!&lt;br&gt;private void DoSomethingToControls2(Control parentControl)&lt;br&gt;{&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; foreach (var ctrl in parentControl.Controls.OfType&amp;lt;CheckBox&amp;gt;().Where(ctrl =&amp;gt; ctrl.Tag.ToString() == "Checkme"))&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; {&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; ctrl.Checked = true;&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;br&gt;}</description></item><item><title>Το γενικό control δεν έχει property Checked. Τότε πως το τσεκάρω?</title><link>https://www.dotnetzone.gr:443/cs/forums/thread/59968.aspx</link><pubDate>Sun, 12 Sep 2010 22:41:16 GMT</pubDate><guid isPermaLink="false">2622095e-976c-431a-859e-16783ec7ecd7:59968</guid><dc:creator>sakis_drm</dc:creator><slash:comments>0</slash:comments><comments>https://www.dotnetzone.gr:443/cs/forums/thread/59968.aspx</comments><wfw:commentRss>https://www.dotnetzone.gr:443/cs/forums/commentrss.aspx?SectionID=80&amp;PostID=59968</wfw:commentRss><description>Καλησπέρα,&lt;br&gt;&lt;br&gt;έχω ένα μηχανισμό για να τσεκάρονται αυτόματα ορισμένα από τα checkBoxes ενός container. Ψάχνω σε όλα τα controls του container για τα checkboxes και μετά για καθένα από αυτά αν αναφέρει την οδηγία "CheckMe" στο tag του. To πρόβλημα είναι ότι το ctrl δεν έχει property checked για να το ορίσω σε true. &lt;br&gt;&lt;br&gt;&lt;table width="100%" border="0" cellpadding="0" cellspacing="0"&gt;&lt;tr style="vertical-align:top;line-height:normal;"&gt;&lt;td style="width:40px;text-align:right;"&gt;&lt;pre style="font-family:courier new;font-size:11px;color:gray;margin:0px;padding:2px;"&gt;1
2
3
4
5
6
7
8
9
10
 &lt;/pre&gt;&lt;/td&gt;&lt;td&gt;&lt;pre style="margin:0px;padding:2px 2px 2px 8px;"&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;foreach&lt;/span&gt; (Control ctrl &lt;span style="color:Blue;background-color:Transparent;font-family:Courier New;font-size:11px;font-weight:normal;"&gt;in&lt;/span&gt; grpFields.Controls)
{
	&lt;span style="color:Blue;background-color:Transparent;font-family:Courier New;font-size:11px;font-weight:normal;"&gt;if&lt;/span&gt; (ctrl.GetType().Name.Equals(&lt;span style="font-family:Courier New;font-size:11px;font-weight:normal;"&gt;"CheckBox"&lt;/span&gt;))
	{
		&lt;span style="color:Blue;background-color:Transparent;font-family:Courier New;font-size:11px;font-weight:normal;"&gt;if&lt;/span&gt; (!ReferenceEquals(ctrl.Tag, &lt;span style="font-family:Courier New;font-size:11px;font-weight:normal;"&gt;"Checkme"&lt;/span&gt;))
		{
			&lt;span style="color:Green;background-color:Transparent;font-family:Courier New;font-size:11px;font-weight:normal;"&gt;// Τσέκαρε το ctrl&lt;/span&gt;
		}
	}
}&lt;/span&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;br&gt;&lt;i&gt;Φαντάζομαι ότι πρέπει να γίνει κάποιο cast σε checkBox και να γίνει με αναφορά στο αρχικό ctrl, αλλά δεν μπορώ να το καταφέρω.&lt;/i&gt;&lt;br&gt;</description></item></channel></rss>