<?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>Απ: Sub CleanTextBoxes</title><link>https://www.dotnetzone.gr:443/cs/forums/thread/36441.aspx</link><pubDate>Sun, 21 Oct 2007 05:09:27 GMT</pubDate><guid isPermaLink="false">2622095e-976c-431a-859e-16783ec7ecd7:36441</guid><dc:creator>Αλέξανδρος Δημητρίου</dc:creator><slash:comments>0</slash:comments><comments>https://www.dotnetzone.gr:443/cs/forums/thread/36441.aspx</comments><wfw:commentRss>https://www.dotnetzone.gr:443/cs/forums/commentrss.aspx?SectionID=80&amp;PostID=36441</wfw:commentRss><description>&lt;P&gt;Θα σου απαντήσω γιατί καθαρίζω τα textboxes.......&lt;/P&gt;
&lt;P&gt;Ειμαι στη φόρμα καταχώρησης πελατών.καταχωρώ ένα πελάτη με κάποια procedure.Τα πεδία μου όμως μένουν με τις τελευταίες εγγραφές.Οπότε Θέλω πατώντας το κουμπί αποθήκευση να τα καθαρίσω για να εισάγω επόμενο πελάτη εάν χρειαστεί&lt;/P&gt;
&lt;P&gt;Δεν κάνω στα πεδία μου databinding...Tα έχω κενά και έπειτα τρέχω procedures για τους παρακάτω λόγους&lt;/P&gt;
&lt;P&gt;1)όταν ένα textbox κανει databinding σε αριθμητικό πεδίο πίνακα βάσης sql όταν πέσεις πάνω σε αυτό το πεδίο με tab δε σε αφήνει να φύγεις άμα δε βάλεις αριθμό.&lt;/P&gt;
&lt;P&gt;2) Δεν έχω καταφέρει ακόμα να στείλω null τιμή στη βάση μου.Όταν ένα textbox είναι κενό στέλνει τη τιμή ΄΄ στη βάση μου , οπότε το χειρίζομαι ως εξής:&lt;/P&gt;
&lt;P&gt;Στη procedure γράφω:&lt;/P&gt;
&lt;P&gt;If @Custaddress = '' Set @Custaddress = Null&lt;/P&gt;
&lt;P&gt;Ξέρω οτι υπαρχουν τρόποι μα δε ξέρω ποιοί!Κι εκεί έρχεται η πολύτιμη βοήθειά σας καθώς και τα books on line τα οποία κατά την άποψη μου μπερδεύουν πάρα πολύ.Όχι τόσο του sql όσο της Vis Studio.&lt;/P&gt;
&lt;P&gt;Παιδιά αν μπορείτε ρίξτε μια ματιά και στο άλλο θέμα που έχω εκθέσει.Έιναι ακόμα πιο σημαντικό.Εδώ το πολυ πολυ κάνεις τα πεδία clean και ένα - ενα.....&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;Παιδια κ πάλι ευχαριστώ.........&lt;/P&gt;</description></item><item><title>Απ: Sub CleanTextBoxes</title><link>https://www.dotnetzone.gr:443/cs/forums/thread/36440.aspx</link><pubDate>Sun, 21 Oct 2007 04:57:30 GMT</pubDate><guid isPermaLink="false">2622095e-976c-431a-859e-16783ec7ecd7:36440</guid><dc:creator>Παναγιώτης Καναβός</dc:creator><slash:comments>0</slash:comments><comments>https://www.dotnetzone.gr:443/cs/forums/thread/36440.aspx</comments><wfw:commentRss>https://www.dotnetzone.gr:443/cs/forums/commentrss.aspx?SectionID=80&amp;PostID=36440</wfw:commentRss><description>Ουπς, έπρεπε να γράψω Not myTextBox Is Nothing. Αλλά γιατί επιμένεις να καθαρίσεις τα TextBoxes? Αφού δεν χρειάζεται. Είναι κακή ιδέα να προσπαθείς να ξαναχρησιμοποιήσεις μία φόρμα. Πολύ κακή.</description></item><item><title>Απ: Sub CleanTextBoxes</title><link>https://www.dotnetzone.gr:443/cs/forums/thread/36439.aspx</link><pubDate>Sun, 21 Oct 2007 04:57:04 GMT</pubDate><guid isPermaLink="false">2622095e-976c-431a-859e-16783ec7ecd7:36439</guid><dc:creator>cap</dc:creator><slash:comments>0</slash:comments><comments>https://www.dotnetzone.gr:443/cs/forums/thread/36439.aspx</comments><wfw:commentRss>https://www.dotnetzone.gr:443/cs/forums/commentrss.aspx?SectionID=80&amp;PostID=36439</wfw:commentRss><description>&lt;P&gt;&lt;BLOCKQUOTE&gt;&lt;div&gt;&lt;img src="http://www.dotnetzone.gr/cs/Themes/default/images/icon-quote.gif"&gt; &lt;strong&gt;Παναγιώτης Καναβός:&lt;/strong&gt;&lt;/div&gt;&lt;div&gt;Καταρχήν, δεν υπάρχει κανένας λόγος να καθαρίσεις τα textbox γιατί είναι κενά εξαρχής. &lt;/div&gt;&lt;/BLOCKQUOTE&gt;&lt;/P&gt;
&lt;P&gt;Τώρα το είδα αυτό! &lt;/P&gt;
&lt;P&gt;Αποκλείεις να έχουν τιμές "καρφωτά"; &lt;/P&gt;</description></item><item><title>Απ: Sub CleanTextBoxes</title><link>https://www.dotnetzone.gr:443/cs/forums/thread/36436.aspx</link><pubDate>Sun, 21 Oct 2007 04:35:00 GMT</pubDate><guid isPermaLink="false">2622095e-976c-431a-859e-16783ec7ecd7:36436</guid><dc:creator>cap</dc:creator><slash:comments>0</slash:comments><comments>https://www.dotnetzone.gr:443/cs/forums/thread/36436.aspx</comments><wfw:commentRss>https://www.dotnetzone.gr:443/cs/forums/commentrss.aspx?SectionID=80&amp;PostID=36436</wfw:commentRss><description>&lt;P&gt;Για να χειριστείς controls που βρίσκονται μέσα σε άλλα controls συνήθως χρειάζεται να υλοποιήσεις αναδρομικότητα (μια μέθοδο που να καλεί τον εαυτό της). Το groupbox είναι ένα control που περιέχει controls. Παραθέτω το σχετικό κώδικα:&lt;/P&gt;
&lt;P&gt;&lt;SPAN style="FONT-WEIGHT:normal;FONT-SIZE:11px;COLOR:black;FONT-FAMILY:Courier New;BACKGROUND-COLOR:transparent;"&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;SPAN style="FONT-WEIGHT:normal;FONT-SIZE:11px;COLOR:blue;FONT-FAMILY:Courier New;BACKGROUND-COLOR:transparent;"&gt;Overloads&lt;/SPAN&gt; &lt;SPAN style="FONT-WEIGHT:normal;FONT-SIZE:11px;COLOR:blue;FONT-FAMILY:Courier New;BACKGROUND-COLOR:transparent;"&gt;Sub&lt;/SPAN&gt; CleanTextBoxes(&lt;SPAN style="FONT-WEIGHT:normal;FONT-SIZE:11px;COLOR:blue;FONT-FAMILY:Courier New;BACKGROUND-COLOR:transparent;"&gt;ByVal&lt;/SPAN&gt; FormName &lt;SPAN style="FONT-WEIGHT:normal;FONT-SIZE:11px;COLOR:blue;FONT-FAMILY:Courier New;BACKGROUND-COLOR:transparent;"&gt;As&lt;/SPAN&gt; Windows.Forms.Form)&lt;BR&gt;&lt;BR&gt;&lt;SPAN style="FONT-WEIGHT:normal;FONT-SIZE:11px;COLOR:blue;FONT-FAMILY:Courier New;BACKGROUND-COLOR:transparent;"&gt;For&lt;/SPAN&gt; &lt;SPAN style="FONT-WEIGHT:normal;FONT-SIZE:11px;COLOR:blue;FONT-FAMILY:Courier New;BACKGROUND-COLOR:transparent;"&gt;Each&lt;/SPAN&gt; ctr &lt;SPAN style="FONT-WEIGHT:normal;FONT-SIZE:11px;COLOR:blue;FONT-FAMILY:Courier New;BACKGROUND-COLOR:transparent;"&gt;As&lt;/SPAN&gt; Windows.Forms.Control &lt;SPAN style="FONT-WEIGHT:normal;FONT-SIZE:11px;COLOR:blue;FONT-FAMILY:Courier New;BACKGROUND-COLOR:transparent;"&gt;In&lt;/SPAN&gt; FormName.Controls&lt;BR&gt;CleanTextBoxes(ctr)&lt;BR&gt;&lt;SPAN style="FONT-WEIGHT:normal;FONT-SIZE:11px;COLOR:blue;FONT-FAMILY:Courier New;BACKGROUND-COLOR:transparent;"&gt;Next&lt;/SPAN&gt;&lt;BR&gt;&lt;BR&gt;&lt;SPAN style="FONT-WEIGHT:normal;FONT-SIZE:11px;COLOR:blue;FONT-FAMILY:Courier New;BACKGROUND-COLOR:transparent;"&gt;End&lt;/SPAN&gt; &lt;SPAN style="FONT-WEIGHT:normal;FONT-SIZE:11px;COLOR:blue;FONT-FAMILY:Courier New;BACKGROUND-COLOR:transparent;"&gt;Sub&lt;/SPAN&gt;&lt;BR&gt;&lt;BR&gt;&lt;BR&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;SPAN style="FONT-WEIGHT:normal;FONT-SIZE:11px;COLOR:blue;FONT-FAMILY:Courier New;BACKGROUND-COLOR:transparent;"&gt;Overloads&lt;/SPAN&gt; &lt;SPAN style="FONT-WEIGHT:normal;FONT-SIZE:11px;COLOR:blue;FONT-FAMILY:Courier New;BACKGROUND-COLOR:transparent;"&gt;Sub&lt;/SPAN&gt; CleanTextBoxes(&lt;SPAN style="FONT-WEIGHT:normal;FONT-SIZE:11px;COLOR:blue;FONT-FAMILY:Courier New;BACKGROUND-COLOR:transparent;"&gt;ByVal&lt;/SPAN&gt; givenControl &lt;SPAN style="FONT-WEIGHT:normal;FONT-SIZE:11px;COLOR:blue;FONT-FAMILY:Courier New;BACKGROUND-COLOR:transparent;"&gt;As&lt;/SPAN&gt; Windows.Forms.Control)&lt;BR&gt;&lt;SPAN style="FONT-WEIGHT:normal;FONT-SIZE:11px;COLOR:blue;FONT-FAMILY:Courier New;BACKGROUND-COLOR:transparent;"&gt;If&lt;/SPAN&gt; (&lt;SPAN style="FONT-WEIGHT:normal;FONT-SIZE:11px;COLOR:blue;FONT-FAMILY:Courier New;BACKGROUND-COLOR:transparent;"&gt;TypeOf&lt;/SPAN&gt; (givenControl) &lt;SPAN style="FONT-WEIGHT:normal;FONT-SIZE:11px;COLOR:blue;FONT-FAMILY:Courier New;BACKGROUND-COLOR:transparent;"&gt;Is&lt;/SPAN&gt; Windows.Forms.TextBox) &lt;SPAN style="FONT-WEIGHT:normal;FONT-SIZE:11px;COLOR:blue;FONT-FAMILY:Courier New;BACKGROUND-COLOR:transparent;"&gt;Then&lt;/SPAN&gt;&lt;BR&gt;&lt;SPAN style="FONT-WEIGHT:normal;FONT-SIZE:11px;COLOR:blue;FONT-FAMILY:Courier New;BACKGROUND-COLOR:transparent;"&gt;DirectCast&lt;/SPAN&gt;(givenControl, Windows.Forms.TextBox).&lt;SPAN style="FONT-WEIGHT:normal;FONT-SIZE:11px;COLOR:blue;FONT-FAMILY:Courier New;BACKGROUND-COLOR:transparent;"&gt;Clear&lt;/SPAN&gt;()&lt;BR&gt;&lt;SPAN style="FONT-WEIGHT:normal;FONT-SIZE:11px;COLOR:blue;FONT-FAMILY:Courier New;BACKGROUND-COLOR:transparent;"&gt;Else&lt;/SPAN&gt;&lt;BR&gt;&lt;SPAN style="FONT-WEIGHT:normal;FONT-SIZE:11px;COLOR:blue;FONT-FAMILY:Courier New;BACKGROUND-COLOR:transparent;"&gt;For&lt;/SPAN&gt; &lt;SPAN style="FONT-WEIGHT:normal;FONT-SIZE:11px;COLOR:blue;FONT-FAMILY:Courier New;BACKGROUND-COLOR:transparent;"&gt;Each&lt;/SPAN&gt; ctr &lt;SPAN style="FONT-WEIGHT:normal;FONT-SIZE:11px;COLOR:blue;FONT-FAMILY:Courier New;BACKGROUND-COLOR:transparent;"&gt;As&lt;/SPAN&gt; Windows.Forms.Control &lt;SPAN style="FONT-WEIGHT:normal;FONT-SIZE:11px;COLOR:blue;FONT-FAMILY:Courier New;BACKGROUND-COLOR:transparent;"&gt;In&lt;/SPAN&gt; givenControl.Controls&lt;BR&gt;CleanTextBoxes(ctr)&lt;BR&gt;&lt;BR&gt;&lt;SPAN style="FONT-WEIGHT:normal;FONT-SIZE:11px;COLOR:blue;FONT-FAMILY:Courier New;BACKGROUND-COLOR:transparent;"&gt;Next&lt;/SPAN&gt; ctr&lt;BR&gt;&lt;SPAN style="FONT-WEIGHT:normal;FONT-SIZE:11px;COLOR:blue;FONT-FAMILY:Courier New;BACKGROUND-COLOR:transparent;"&gt;End&lt;/SPAN&gt; &lt;SPAN style="FONT-WEIGHT:normal;FONT-SIZE:11px;COLOR:blue;FONT-FAMILY:Courier New;BACKGROUND-COLOR:transparent;"&gt;If&lt;/SPAN&gt;&lt;BR&gt;&lt;SPAN style="FONT-WEIGHT:normal;FONT-SIZE:11px;COLOR:blue;FONT-FAMILY:Courier New;BACKGROUND-COLOR:transparent;"&gt;End&lt;/SPAN&gt; &lt;SPAN style="FONT-WEIGHT:normal;FONT-SIZE:11px;COLOR:blue;FONT-FAMILY:Courier New;BACKGROUND-COLOR:transparent;"&gt;Sub&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;Οπως βλέπεις έχουμε δύο μεθόδους με το ίδιο όνομα, με το χαρακτηριστικό "Overloads" αυτές είναι overloaded methods, που σημαίνει οτι διαφέρουν στα ορίσματα (παραμέτρους). Η πρώτη δέχεται ως όρισμα μια φόρμα και εξετάζει ένα - ένα τα controls της περνώντας το χειρισμό στη δεύτερη. Η δεύτερη κοιτάει αν το control που εξετάζουμε είναι textbox, οπότε το καθαρίζει, διαφορετικά προσπαθεί να μπεί στα controls του control καλώντας τον εαυτό της. (Αν το control δεν έχει άλλα controls προφανώς δεν θα γίνει τίποτα). Οταν καλεί τον εαυτό της για τα controls που περιέχονται μέσα στο groupbox, κοιτάει και πάλι ποιά από αυτά είναι textboxes και συνεχίζει, μέχρι να μην έχουμε άλλα controls μέσα σε controls. Είναι αυτονόητο οτι αυτή η αναδρομικότητα δουλεύει για απεριόριστο βάθος, ήτοι μπορεις να εχεις groupboxes μέσα σε groupboxes μέσα σε groupboxes και στο τελευταίο επίπεδο να έχεις ένα textbox.&lt;/P&gt;</description></item><item><title>Απ: Sub CleanTextBoxes</title><link>https://www.dotnetzone.gr:443/cs/forums/thread/36435.aspx</link><pubDate>Sun, 21 Oct 2007 04:16:30 GMT</pubDate><guid isPermaLink="false">2622095e-976c-431a-859e-16783ec7ecd7:36435</guid><dc:creator>Αλέξανδρος Δημητρίου</dc:creator><slash:comments>0</slash:comments><comments>https://www.dotnetzone.gr:443/cs/forums/thread/36435.aspx</comments><wfw:commentRss>https://www.dotnetzone.gr:443/cs/forums/commentrss.aspx?SectionID=80&amp;PostID=36435</wfw:commentRss><description>&lt;P&gt;Φίλε Παναγιώτη το δικό σου παράδειγμα δε λειτουργεί.Είναι σαν να μη κάνει απολύτως τίποτα. Το έτρεξα με steps και δεν μπαίνει καθόλου στη συνθήκη.ανεστρεψα τη συνθήκη&amp;nbsp;και όταν μπαίνει μέσα σε αυτή χτυπά null referece exception.&amp;nbsp;Το παράδειγμα του cap δουλέυει άψογα.Παρ'ολα αυτα έχω πρόβλημα με τα textboxes που είναι μέσα σε groupBoxes. Δεν τα επηρεάζει καθόλου. Τι να κάνω για αυτό?&lt;/P&gt;</description></item><item><title>Απ: Sub CleanTextBoxes</title><link>https://www.dotnetzone.gr:443/cs/forums/thread/36432.aspx</link><pubDate>Sun, 21 Oct 2007 03:13:44 GMT</pubDate><guid isPermaLink="false">2622095e-976c-431a-859e-16783ec7ecd7:36432</guid><dc:creator>cap</dc:creator><slash:comments>0</slash:comments><comments>https://www.dotnetzone.gr:443/cs/forums/thread/36432.aspx</comments><wfw:commentRss>https://www.dotnetzone.gr:443/cs/forums/commentrss.aspx?SectionID=80&amp;PostID=36432</wfw:commentRss><description>&lt;P&gt;Αντιγράφω από τους κανονισμούς:&lt;/P&gt;
&lt;P&gt;&lt;EM&gt;&lt;B&gt;Αν λάβουμε απάντηση που μας λύνει το πρόβλημα&lt;/B&gt;, είναι πολύ σημαντικό να θέσουμε σε &lt;B&gt;"Έχει επιλυθεί" &lt;/B&gt;το &lt;B&gt;"Κατάσταση Ενότητας" &lt;/B&gt;και να μαρκάρουμε τη σωστή απάντηση με το &lt;B&gt;"Σημείωση ως Απάντησης"&lt;/B&gt;. Είναι πιο σημαντικό από "χίλια ευχαριστώ", από το να ανάψετε λαμπάδα ίσα με το μπόι αυτού που σας απάντησε (που να το ξέρετε άλλωστε;) ή να του στείλετε ένα τενεκέ λάδι. Έτσι, και θα σας μείνει ο τενεκές και δε θα σας λένε οι υπόλοιποι χρήστες τενεκέ.&lt;/EM&gt; &lt;/P&gt;
&lt;P&gt;:)&lt;/P&gt;</description></item><item><title>Απ: Sub CleanTextBoxes</title><link>https://www.dotnetzone.gr:443/cs/forums/thread/36431.aspx</link><pubDate>Sun, 21 Oct 2007 02:58:14 GMT</pubDate><guid isPermaLink="false">2622095e-976c-431a-859e-16783ec7ecd7:36431</guid><dc:creator>Αλέξανδρος Δημητρίου</dc:creator><slash:comments>0</slash:comments><comments>https://www.dotnetzone.gr:443/cs/forums/thread/36431.aspx</comments><wfw:commentRss>https://www.dotnetzone.gr:443/cs/forums/commentrss.aspx?SectionID=80&amp;PostID=36431</wfw:commentRss><description>&lt;P&gt;Παιδιά πήρα δυο καλές διαφωτισικές απαντήσεις&lt;/P&gt;
&lt;P&gt;Είστε άψογοι , Ευχαριστώ για το χρόνο σας....&lt;/P&gt;</description></item><item><title>Απ: Sub CleanTextBoxes</title><link>https://www.dotnetzone.gr:443/cs/forums/thread/36429.aspx</link><pubDate>Sun, 21 Oct 2007 01:58:56 GMT</pubDate><guid isPermaLink="false">2622095e-976c-431a-859e-16783ec7ecd7:36429</guid><dc:creator>cap</dc:creator><slash:comments>0</slash:comments><comments>https://www.dotnetzone.gr:443/cs/forums/thread/36429.aspx</comments><wfw:commentRss>https://www.dotnetzone.gr:443/cs/forums/commentrss.aspx?SectionID=80&amp;PostID=36429</wfw:commentRss><description>&lt;P&gt;Μαλλον Παναγιώτη έγραφες τα ίδια πράγματα την ώρα που έγραφα κι εγώ :) Να πω οτι όντως το θέμα με το reference στο τελευταίο στοιχείο δεν το σκέφτηκα, και είναι σωστό. Αρα είναι ΚΑΙ από άποψη resource allocation καλύτερο το for each x as.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;</description></item><item><title>Απ: Sub CleanTextBoxes</title><link>https://www.dotnetzone.gr:443/cs/forums/thread/36427.aspx</link><pubDate>Sun, 21 Oct 2007 01:56:32 GMT</pubDate><guid isPermaLink="false">2622095e-976c-431a-859e-16783ec7ecd7:36427</guid><dc:creator>Παναγιώτης Καναβός</dc:creator><slash:comments>0</slash:comments><comments>https://www.dotnetzone.gr:443/cs/forums/thread/36427.aspx</comments><wfw:commentRss>https://www.dotnetzone.gr:443/cs/forums/commentrss.aspx?SectionID=80&amp;PostID=36427</wfw:commentRss><description>&lt;P&gt;Καταρχήν, δεν υπάρχει κανένας λόγος να καθαρίσεις τα textbox γιατί είναι κενά εξαρχής. Υποψιάζομαι ότι προσπαθείς να ξαναχρησιμοποιήσεις την ίδια μεταβλητή φόρμας ή αντί να δημιουργήσεις ένα instance της φόρμας (π.χ. Dim myForm As New Form1()) χρησιμοποιείς το όνομα της φόρμας (Form1.Show()). Αυτός ο τρόπος μπορεί να σου δημιουργήσει πολλά προβλήματα. Εϊναι πολύ καλύτερο να δημιουργείς ένα νέο instance όταν θέλεις να δείξεις τη φόρμα. Επίσης, είναι λάθος να χρησιμοποιείς modules. Αν έχεις μία μέθοδο η οποία επηρεάζει μόνο μία φόρμα, θα πρέπει να είναι μέθοδος της φόρμας, όχι να βρίσκεται σε κάποιο module. Το ίδιο ισχύει και για τις κλάσεις. Η κάθε κλάση ή φόρμα είναι υπεύθυνη για τον εαυτό της και θα πρέπει μόνο αυτή να τροποποιεί τα πεδία της. Όταν θέλεις π.χ. από μία φόρμα να τροποποιήσεις τα πεδία μίας άλλης, θα πρέπει να φτιάξεις μία μέθοδο στην άλλη φόρμα η οποία θα κάνει αυτή τη δουλειά.&lt;/P&gt;
&lt;P&gt;Από εκεί και πέρα, ο λόγος που ο κώδικας σου δεν δουλεύει είναι ότι το Controls collection περιέχει όλα τα control της φόρμας, όχι μόνο τα TextBox. Έτσι όπως έχεις γράψει τον κώδικα λες ουσιαστικά, για κάθε control της φόρμας, κάνε το μου cast σε TextBox και μετά κάλεσε την Clear. Το αποτέλεσμα είναι ο κώδικας να ρίξει το exception που πήρες μόλις συνάντησε ένα control το οποίο δεν ήταν TextBox. &lt;BR&gt;Αντί να χρησιμοποιείς μία μεταβλητή TextBox για το For Each θα πρέπει να χρησιμοποιήσεις μία τύπου Control. Μετά, μέσα στο loop, ελέγχεις τον τύπο της μεταβλητής και αν είναι TextBox καλείς την Clear. Επίσης, δεν πρέπει να ορίζεις την μεταβλητή πριν το For Each γιατί έτσι θα κρατήσεις ένα reference στο τελευταίο control της φόρμας μέχρι να τελειώσει η εκτέλεση της μεθόδου σου. Καλύτερα να γράψεις&lt;/P&gt;
&lt;P&gt;&lt;SPAN style="FONT-WEIGHT:normal;FONT-SIZE:11px;COLOR:black;FONT-FAMILY:Courier New;BACKGROUND-COLOR:transparent;"&gt;&lt;SPAN style="FONT-WEIGHT:normal;FONT-SIZE:11px;COLOR:blue;FONT-FAMILY:Courier New;BACKGROUND-COLOR:transparent;"&gt;For&lt;/SPAN&gt; &lt;SPAN style="FONT-WEIGHT:normal;FONT-SIZE:11px;COLOR:blue;FONT-FAMILY:Courier New;BACKGROUND-COLOR:transparent;"&gt;Each&lt;/SPAN&gt; myContol &lt;SPAN style="FONT-WEIGHT:normal;FONT-SIZE:11px;COLOR:blue;FONT-FAMILY:Courier New;BACKGROUND-COLOR:transparent;"&gt;As&lt;/SPAN&gt; Control &lt;SPAN style="FONT-WEIGHT:normal;FONT-SIZE:11px;COLOR:blue;FONT-FAMILY:Courier New;BACKGROUND-COLOR:transparent;"&gt;in&lt;/SPAN&gt; myForm.Controls&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;Dim myTextBox as TextBox=TryCast(myControl,TextBox)&lt;BR&gt;&lt;/SPAN&gt;&lt;SPAN style="FONT-WEIGHT:normal;FONT-SIZE:11px;COLOR:black;FONT-FAMILY:Courier New;BACKGROUND-COLOR:transparent;"&gt;&amp;nbsp;&amp;nbsp; If myControl Is Nothing Then&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; myTextBox.Clear()&lt;BR&gt;&amp;nbsp;&amp;nbsp; End If&lt;/SPAN&gt;&lt;SPAN style="FONT-WEIGHT:normal;FONT-SIZE:11px;COLOR:black;FONT-FAMILY:Courier New;BACKGROUND-COLOR:transparent;"&gt;&lt;BR&gt;&lt;SPAN style="FONT-WEIGHT:normal;FONT-SIZE:11px;COLOR:blue;FONT-FAMILY:Courier New;BACKGROUND-COLOR:transparent;"&gt;Next&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/P&gt;</description></item><item><title>Απ: Sub CleanTextBoxes</title><link>https://www.dotnetzone.gr:443/cs/forums/thread/36426.aspx</link><pubDate>Sun, 21 Oct 2007 01:52:41 GMT</pubDate><guid isPermaLink="false">2622095e-976c-431a-859e-16783ec7ecd7:36426</guid><dc:creator>cap</dc:creator><slash:comments>0</slash:comments><comments>https://www.dotnetzone.gr:443/cs/forums/thread/36426.aspx</comments><wfw:commentRss>https://www.dotnetzone.gr:443/cs/forums/commentrss.aspx?SectionID=80&amp;PostID=36426</wfw:commentRss><description>&lt;P&gt;Το Controls collection περιέχει όλα τα controls της φόρμας και όχι μόνο τα textboxes. Επιχειρώντας να κάνεις ένα loop σε όλα τα Controls της φόρμας σου προφανώς κάποια στιγμή συναντάς ένα Button το οποίο προσπαθεί η εφαρμογή στο runtime (implicitly) να κάνει cast σε Textbox (μια και η μεταβλητή txtBox ειναι τύπου Textbox). Φυσικά αυτό δεν γίνεται και ιδού το σφάλμα.&lt;/P&gt;
&lt;P&gt;Αυτό που πρέπει να κάνεις είναι να εκτελέσεις κωδικα που θα παίρνει όλα τα controls της φόρμας, θα ξεχωρίζει ποιά είναι τα textboxes και θα εκτελεί μόνο σε αυτά την μέθοδο Clear(). Κάπως έτσι:&lt;/P&gt;
&lt;P&gt;&lt;SPAN style="FONT-WEIGHT:normal;FONT-SIZE:11px;COLOR:black;FONT-FAMILY:Courier New;BACKGROUND-COLOR:transparent;"&gt;&lt;SPAN style="FONT-WEIGHT:normal;FONT-SIZE:11px;COLOR:blue;FONT-FAMILY:Courier New;BACKGROUND-COLOR:transparent;"&gt;For&lt;/SPAN&gt; &lt;SPAN style="FONT-WEIGHT:normal;FONT-SIZE:11px;COLOR:blue;FONT-FAMILY:Courier New;BACKGROUND-COLOR:transparent;"&gt;Each&lt;/SPAN&gt; ctr &lt;SPAN style="FONT-WEIGHT:normal;FONT-SIZE:11px;COLOR:blue;FONT-FAMILY:Courier New;BACKGROUND-COLOR:transparent;"&gt;As&lt;/SPAN&gt; Windows.Forms.Control &lt;SPAN style="FONT-WEIGHT:normal;FONT-SIZE:11px;COLOR:blue;FONT-FAMILY:Courier New;BACKGROUND-COLOR:transparent;"&gt;In&lt;/SPAN&gt; FormName.Controls&lt;BR&gt;&lt;BR&gt;&lt;SPAN style="FONT-WEIGHT:normal;FONT-SIZE:11px;COLOR:blue;FONT-FAMILY:Courier New;BACKGROUND-COLOR:transparent;"&gt;If&lt;/SPAN&gt; (&lt;SPAN style="FONT-WEIGHT:normal;FONT-SIZE:11px;COLOR:blue;FONT-FAMILY:Courier New;BACKGROUND-COLOR:transparent;"&gt;TypeOf&lt;/SPAN&gt; (ctr) &lt;SPAN style="FONT-WEIGHT:normal;FONT-SIZE:11px;COLOR:blue;FONT-FAMILY:Courier New;BACKGROUND-COLOR:transparent;"&gt;Is&lt;/SPAN&gt; Windows.Forms.TextBox) &lt;SPAN style="FONT-WEIGHT:normal;FONT-SIZE:11px;COLOR:blue;FONT-FAMILY:Courier New;BACKGROUND-COLOR:transparent;"&gt;Then&lt;/SPAN&gt;&lt;BR&gt;&lt;SPAN style="FONT-WEIGHT:normal;FONT-SIZE:11px;COLOR:blue;FONT-FAMILY:Courier New;BACKGROUND-COLOR:transparent;"&gt;DirectCast&lt;/SPAN&gt;(ctr, Windows.Forms.TextBox).&lt;SPAN style="FONT-WEIGHT:normal;FONT-SIZE:11px;COLOR:blue;FONT-FAMILY:Courier New;BACKGROUND-COLOR:transparent;"&gt;Clear&lt;/SPAN&gt;()&lt;BR&gt;&lt;SPAN style="FONT-WEIGHT:normal;FONT-SIZE:11px;COLOR:blue;FONT-FAMILY:Courier New;BACKGROUND-COLOR:transparent;"&gt;End&lt;/SPAN&gt; &lt;SPAN style="FONT-WEIGHT:normal;FONT-SIZE:11px;COLOR:blue;FONT-FAMILY:Courier New;BACKGROUND-COLOR:transparent;"&gt;If&lt;/SPAN&gt;&lt;BR&gt;&lt;BR&gt;&lt;SPAN style="FONT-WEIGHT:normal;FONT-SIZE:11px;COLOR:blue;FONT-FAMILY:Courier New;BACKGROUND-COLOR:transparent;"&gt;Next&lt;/SPAN&gt; ctr&lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;Ορισμένες παρατηρησεις επί του κώδικα:&lt;/P&gt;
&lt;P&gt;1. Βλέπουμε οτι στο For Each μπορούμε να ορίσουμε απευθείας τον τύπο της μεταβλητής ctr χωρίς να την έχουμε κάνει dim παραπάνω. Αυτό δεν έχει διαφορά από τη δική σου υλοποίηση, είναι όμως πιό compact ως συγγραφή.&lt;/P&gt;
&lt;P&gt;2. H μεταβλητή ctr είναι τύπου Windows.Forms.Control. Αυτό σημαίνει οτι μπορεί να ανατεθεί σε ΟΠΟΙΟΔΗΠΟΤΕ control της φόρμας μας.&lt;/P&gt;
&lt;P&gt;3. Στο If μας ξεχωρίζουμε μονο εκείνα τα controls που είναι τύπου Windows.Forms.Textbox. Στη συνέχεια τα κάνουμε cast στο σωστό τύπο για να μπορέσουμε να τρέξουμε την Clear(). Μην ξεχνάμε οτι το Windows.Forms.Control είναι Supertype του textbox. (Η, αλλιώς, το textbox είναι subclass του control). Χρησιμοποιούμε DirectCast και όχι Ctype μια και ειναι δεδομένο οτι έχουμε textbox και η directcast είναι σαφώς πιό γρήγορη.&lt;/P&gt;
&lt;P&gt;Για το δεύτερο ερώτημά σου, η προσωπική μου (και όχι μόνο) άποψη είναι οτι δεν είναι σωστή προγραμματιστική τακτική. Τα modules έχουν "ξεμείνει" από την VB6 και πιό σωστό προγραμματιστικά είναι να χρησιμοποιήσεις μια Class με Shared μεθόδους ή ακόμα και μια Singleton class για να κάνεις αυτές τις δουλειές.&lt;/P&gt;</description></item><item><title>Sub CleanTextBoxes</title><link>https://www.dotnetzone.gr:443/cs/forums/thread/36416.aspx</link><pubDate>Sat, 20 Oct 2007 21:06:00 GMT</pubDate><guid isPermaLink="false">2622095e-976c-431a-859e-16783ec7ecd7:36416</guid><dc:creator>Αλέξανδρος Δημητρίου</dc:creator><slash:comments>0</slash:comments><comments>https://www.dotnetzone.gr:443/cs/forums/thread/36416.aspx</comments><wfw:commentRss>https://www.dotnetzone.gr:443/cs/forums/commentrss.aspx?SectionID=80&amp;PostID=36416</wfw:commentRss><description>&lt;P&gt;Παιδιά Καλημέρα...&lt;/P&gt;
&lt;P&gt;Θελω να φτιάξω μια υπορουτίνα η οποία κατά το άνοιγμα της φόρμας θα καθαρίζει όλα τα textboxes.έχω κάνει το εξής:&lt;/P&gt;
&lt;P&gt;Σε ένα Module έχω φτιάξει την εξής υπορουτίνα:&lt;/P&gt;&lt;FONT size=2&gt;
&lt;P&gt;&lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt;Public&lt;/FONT&gt;&lt;FONT size=2&gt; &lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt;Sub&lt;/FONT&gt;&lt;FONT size=2&gt; CleanTextBoxes(&lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt;ByVal&lt;/FONT&gt;&lt;FONT size=2&gt; FormName &lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt;As&lt;/FONT&gt;&lt;FONT size=2&gt; Windows.Forms.Form)&lt;/P&gt;
&lt;P&gt;&lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt;Dim&lt;/FONT&gt;&lt;FONT size=2&gt; txtBox &lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt;As&lt;/FONT&gt;&lt;FONT size=2&gt; TextBox&lt;/P&gt;
&lt;P&gt;&lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt;For&lt;/FONT&gt;&lt;FONT size=2&gt; &lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt;Each&lt;/FONT&gt;&lt;FONT size=2&gt; txtBox &lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt;In&lt;/FONT&gt;&lt;FONT size=2&gt; FormName.Controls&lt;/P&gt;
&lt;P&gt;txtBox.Clear()&lt;/P&gt;
&lt;P&gt;&lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt;Next&lt;/FONT&gt;&lt;FONT size=2&gt; txtBox&lt;/P&gt;
&lt;P&gt;&lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt;End&lt;/FONT&gt;&lt;FONT size=2&gt; &lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt;Sub&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT color=#0000ff size=2&gt;&lt;/FONT&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&lt;FONT color=#0000ff size=2&gt;&lt;FONT color=#000000&gt;Στο load event της φόρμας μου τρέχω το εξής:&lt;/FONT&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT color=#0000ff size=2&gt;&lt;FONT color=#000000&gt;call Cleantextboxes(me)&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; και παίρνω το παρακάτω λάθος:&lt;/FONT&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT size=2&gt;Unable to cast object of type 'System.Windows.Forms.Button' to type 'System.Windows.Forms.TextBox'.&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT size=2&gt;&lt;/FONT&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&lt;FONT size=2&gt;1)Θα μου πει κάποιος σας παρακαλώ γιατι?&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;2)Ειναι σωστό προγραμματιστικά να χρησιμοποιεις modules και να καλείς διαδικασίες απο εκει?&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;Ευχαριστώ πολυ παιδιά&lt;/P&gt;
&lt;P&gt;&lt;FONT size=2&gt;&amp;nbsp;&lt;/P&gt;&lt;/FONT&gt;</description></item></channel></rss>