<?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>Πρώτα Βήματα - Γλώσσες προγραμματισμού</title><link>https://www.dotnetzone.gr:443/cs/forums/74/ShowForum.aspx</link><description>Τα πρώτα βήματα στις γλώσσες VB6, VB.NET, και C#</description><dc:language>el</dc:language><generator>CommunityServer 2.1 SP3 (Build: 20423.1)</generator><item><title>Απ: Binding Navigator &amp; Data Validation σε κάθε του ενέργεια</title><link>https://www.dotnetzone.gr:443/cs/forums/thread/25906.aspx</link><pubDate>Mon, 05 Mar 2007 22:46:09 GMT</pubDate><guid isPermaLink="false">2622095e-976c-431a-859e-16783ec7ecd7:25906</guid><dc:creator>KelMan</dc:creator><slash:comments>0</slash:comments><comments>https://www.dotnetzone.gr:443/cs/forums/thread/25906.aspx</comments><wfw:commentRss>https://www.dotnetzone.gr:443/cs/forums/commentrss.aspx?SectionID=74&amp;PostID=25906</wfw:commentRss><description>&lt;P&gt;Δεν γίνεται καλείς το event γιατί το event τρέχει κάτω από συγκεκριμένες συνθήκες. Υποθέτω ότι αυτό που εννοείς είναι να φτιάξεις μια ρουτίνα που θα κάνει validation, την οποία θα καλείς στα events μετακίνησης. Άρα δεν έχει νόημα να μπλέξεις με το Validating event της φόρμας, εφόσον θέλεις να κάνεις το validation σε συγκεκριμένη στιγμή που εσύ επιλέγεις.&lt;/P&gt;</description></item><item><title>Απ: Binding Navigator &amp; Data Validation σε κάθε του ενέργεια</title><link>https://www.dotnetzone.gr:443/cs/forums/thread/25902.aspx</link><pubDate>Mon, 05 Mar 2007 22:06:36 GMT</pubDate><guid isPermaLink="false">2622095e-976c-431a-859e-16783ec7ecd7:25902</guid><dc:creator>Dark Dominion</dc:creator><slash:comments>0</slash:comments><comments>https://www.dotnetzone.gr:443/cs/forums/thread/25902.aspx</comments><wfw:commentRss>https://www.dotnetzone.gr:443/cs/forums/commentrss.aspx?SectionID=74&amp;PostID=25902</wfw:commentRss><description>Βασικά σκεφτόμουν να κάνω Validation σε όλα τα textboxes &amp;amp; comboboxes, στο event που γίνεται το validation της φόρμας και να καλώ το event κάθε φορά που ο χρήστης προσπαθεί να μετακινηθεί μεταξύ των εγγραφών. Και στη περίπτωση που κάτι είναι λάθος να το καταλαβαίνει μέσω των μηνυμάτων που θα εμφανίζει ο error provider.&lt;br&gt;</description></item><item><title>Απ: Binding Navigator &amp; Data Validation σε κάθε του ενέργεια</title><link>https://www.dotnetzone.gr:443/cs/forums/thread/25857.aspx</link><pubDate>Mon, 05 Mar 2007 01:14:52 GMT</pubDate><guid isPermaLink="false">2622095e-976c-431a-859e-16783ec7ecd7:25857</guid><dc:creator>KelMan</dc:creator><slash:comments>0</slash:comments><comments>https://www.dotnetzone.gr:443/cs/forums/thread/25857.aspx</comments><wfw:commentRss>https://www.dotnetzone.gr:443/cs/forums/commentrss.aspx?SectionID=74&amp;PostID=25857</wfw:commentRss><description>&lt;P&gt;Αυτό που ψάχνεις είναι ο μηχανισμός για validation σε Windows Forms (υποθέτω ότι αναφέρεσαι σε εφαρμογή Windows Forms). &lt;/P&gt;
&lt;P&gt;Γενικά, κάθε φόρμα (και κάθε control) παρέχει δύο events το Validating και το Validated που χρησιμοποιούνται για ...validation. Το Validating event τρέχει αμέσως μόλις το εκάστοτε control αποκτήσει input αλλά πριν θεωρηθεί valid αυτό το input και είναι το event που συνήθως χρησιμοποιείται στο databinding. To Validated event τρέχει μόλις το input θεωρηθεί valid. Μόλις ένα control&amp;nbsp;καταλάβει ότι ο χρήστης έχει τελειώσει και έχει δώσει input (δηλαδή όταν πάει να φύγει το focus επειδή ο χρήστης μεταφέρθηκε σε επόμενο control) τότε τρέχει το Validating event. Ο τύπος του event είναι CancelEventHandler που δέχεται ένα CancelEventArgs όρισμα. Αυτό το όρισμα περιέχει ένα property που ονομάζεται Cancel που αν μέσα στον event handler του δώσουμε τιμή true τότε το control καταλαβαίνει ότι το validation έχει αποτύχει. Έτσι, το focus δεν θα φύγει και ο χρήστης αναγκάζεται να διορθώσει το input πριν προxωρίσει στο επόμενο control. Παράδειγμα:&lt;/P&gt;
&lt;P&gt;&lt;FONT face="Courier New"&gt;&amp;nbsp;&amp;nbsp; &lt;SPAN style="COLOR:blue;"&gt;Private&lt;/SPAN&gt; &lt;SPAN style="COLOR:blue;"&gt;Sub&lt;/SPAN&gt; textBox1_Validating(&lt;SPAN style="COLOR:blue;"&gt;ByVal&lt;/SPAN&gt; sender &lt;SPAN style="COLOR:blue;"&gt;As&lt;/SPAN&gt; &lt;SPAN style="COLOR:blue;"&gt;Object&lt;/SPAN&gt;,&amp;nbsp;_&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/FONT&gt;&lt;FONT face="Courier New"&gt;&lt;SPAN style="COLOR:blue;"&gt;ByVal&lt;/SPAN&gt; e &lt;SPAN style="COLOR:blue;"&gt;As&lt;/SPAN&gt; System.ComponentModel.CancelEventArgs) &lt;SPAN style="COLOR:blue;"&gt;Handles&lt;/SPAN&gt; textBox1.Validating&lt;BR&gt;&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;SPAN style="COLOR:blue;"&gt;Dim&lt;/SPAN&gt; errorMsg &lt;SPAN style="COLOR:blue;"&gt;As&lt;/SPAN&gt; &lt;/FONT&gt;&lt;FONT size=1&gt;&lt;FONT face="Courier New"&gt;&lt;FONT size=2&gt;&lt;SPAN style="COLOR:blue;"&gt;String&lt;BR&gt;&lt;/SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;SPAN style="COLOR:blue;"&gt;If&lt;/SPAN&gt; &lt;SPAN style="COLOR:blue;"&gt;Not&lt;/SPAN&gt; ValidEmailAddress(textBox1.Text, errorMsg) &lt;SPAN style="COLOR:blue;"&gt;Then&lt;/SPAN&gt;&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;SPAN style="COLOR:green;"&gt;' Cancel the event and select the text to be corrected by the user.&lt;/SPAN&gt;&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; e.Cancel = &lt;SPAN style="COLOR:blue;"&gt;True&lt;/SPAN&gt;&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; textBox1.Select(0, textBox1.Text.Length)&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;SPAN style="COLOR:blue;"&gt;End&lt;/SPAN&gt; &lt;SPAN style="COLOR:blue;"&gt;If&lt;/SPAN&gt;&lt;BR&gt;&amp;nbsp;&amp;nbsp; &lt;SPAN style="COLOR:blue;"&gt;End&lt;/SPAN&gt; &lt;SPAN style="COLOR:blue;"&gt;Sub&lt;/SPAN&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT size=1&gt;&lt;FONT face="Courier New"&gt;&lt;FONT size=2&gt;&lt;SPAN style="COLOR:blue;"&gt;&lt;/SPAN&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/FONT&gt;Βέβαια, πολλές φορές είναι εκνευριστικό να μην μπορείς να προχωρήσεις (και ιδιαίτερα να σου πετάγονται Message Boxes) και έτσι δεν χρησιμοποιείται ακριβώς αυτή η τεχνική αλλά η τεχνική του να παρέχεις στο χρήστη συνολικά πληροφορίες στο τέλος, πριν να πατήσει το OK button. Χρησιμοποιείται ένα ErrorProvider control το οποίο εμφανίζει ένα κόκκινο θαυμαστικό δίπλα στο control με την invalid τιμή. Ο χρήστης μπορεί να μετακινηθεί σε όποιο control θέλει αλλά τελικά θα πρέπει να τα διορθώσει όλα.&lt;/P&gt;
&lt;P&gt;&lt;FONT face="Courier New"&gt;&amp;nbsp;&amp;nbsp; &lt;SPAN style="COLOR:blue;"&gt;Private&lt;/SPAN&gt; &lt;SPAN style="COLOR:blue;"&gt;Sub&lt;/SPAN&gt; textBox1_Validating(&lt;SPAN style="COLOR:blue;"&gt;ByVal&lt;/SPAN&gt; sender &lt;SPAN style="COLOR:blue;"&gt;As&lt;/SPAN&gt; &lt;SPAN style="COLOR:blue;"&gt;Object&lt;/SPAN&gt;, _&lt;BR&gt;&amp;nbsp;&amp;nbsp; &lt;SPAN style="COLOR:blue;"&gt;ByVal&lt;/SPAN&gt; e &lt;SPAN style="COLOR:blue;"&gt;As&lt;/SPAN&gt; System.ComponentModel.CancelEventArgs) &lt;SPAN style="COLOR:blue;"&gt;Handles&lt;/SPAN&gt; textBox1.Validating&lt;BR&gt;&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;SPAN style="COLOR:blue;"&gt;Dim&lt;/SPAN&gt; errorMsg &lt;SPAN style="COLOR:blue;"&gt;As&lt;/SPAN&gt; &lt;SPAN style="COLOR:blue;"&gt;String&lt;/SPAN&gt;&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;SPAN style="COLOR:blue;"&gt;If&lt;/SPAN&gt; &lt;SPAN style="COLOR:blue;"&gt;Not&lt;/SPAN&gt; ValidEmailAddress(textBox1.Text, errorMsg) &lt;SPAN style="COLOR:blue;"&gt;Then&lt;/SPAN&gt;&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;SPAN style="COLOR:green;"&gt;' Set the ErrorProvider error with the text to display. &lt;/SPAN&gt;&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;SPAN style="COLOR:blue;"&gt;Me&lt;/SPAN&gt;.errorProvider1.SetError(textBox1, errorMsg)&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;SPAN style="COLOR:blue;"&gt;End&lt;/SPAN&gt; &lt;SPAN style="COLOR:blue;"&gt;If&lt;/SPAN&gt;&lt;BR&gt;&amp;nbsp;&amp;nbsp; &lt;SPAN style="COLOR:blue;"&gt;End&lt;/SPAN&gt; &lt;SPAN style="COLOR:blue;"&gt;Sub&lt;/SPAN&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT face="Courier New"&gt;&lt;SPAN style="COLOR:blue;"&gt;&lt;FONT face=Tahoma color=#000000&gt;Μια τέτοια τεχνική περίπου μπορείς να ακολουθήσεις κι εσύ. Επιπρόσθετα, μπορείς να έχεις μια boolean μεταβλητή πχ FieldsAreValid σε επίπεδο φόρμας που αν οποιοδήποτε control την θέσει σε false (κατά το Validating event του), τότε δεν αφήνεις να ολοκληρωθεί το navigation event. Στην περίπτωση του BindingNavigator αλλάζεις τα MoveFirstItem, MoveLastItem, MoveNextItem και MovePreviousΙtem σε (none). Κατόπιν, για κάθε ένα από τα buttons γράφεις τον κώδικα για να χειριστείς ο ίδιος το Navigation. Πχ.&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/FONT&gt;&lt;/P&gt;&lt;FONT face="Courier New"&gt;&lt;SPAN style="COLOR:blue;"&gt;
&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; Private Sub &lt;FONT color=#000000&gt;BindingNavigatorMoveNextItem_Click&lt;/FONT&gt;(ByVal &lt;FONT color=#000000&gt;sender&lt;/FONT&gt; As &lt;FONT color=#000000&gt;System.Object&lt;/FONT&gt;, ByVal e As &lt;FONT color=#000000&gt;System.EventArgs&lt;/FONT&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;&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;&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;Handles &lt;FONT color=#000000&gt;BindingNavigatorMoveNextItem.Click&lt;BR&gt;&lt;/FONT&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; If &lt;FONT color=#000000&gt;FieldsAreValid&lt;/FONT&gt; Then&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;FONT color=#000000&gt;BindingSource1.MoveNext()&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/FONT&gt;&lt;FONT color=#0000ff&gt;Else&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;...&lt;/FONT&gt;&lt;FONT color=#000000&gt;&lt;BR&gt;&lt;/FONT&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; End If&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; End Sub&lt;/SPAN&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;Αυτό είναι σε γενικές γραμμές το validation των Windows Forms. Δεν ξέρω κατά πόσο θα σε βοηθήσουν τα παραπάνω καθώς περιγράφεις πολύ γενικά το τι θέλεις να κάνεις. Θα πρέπει να είσαι πιο συγκεκριμένος στο τι θέλεις να κάνεις για να σου δώσουμε κι εμείς με τη σειρά μας πιο συγκεκριμένη απάντηση. Μπορείς να το ψάξεις παραπάνω στο MSDN, θα βρεις αρκετό υλικό για να το ψάξεις παραπάνω καθώς υπάρχουν κι άλλες τεχνικές όπως για παράδειγμα να παίξεις με το validation σε επίπεδο φόρμας. &lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;</description></item><item><title>Binding Navigator &amp; Data Validation σε κάθε του ενέργεια</title><link>https://www.dotnetzone.gr:443/cs/forums/thread/25854.aspx</link><pubDate>Sun, 04 Mar 2007 22:49:42 GMT</pubDate><guid isPermaLink="false">2622095e-976c-431a-859e-16783ec7ecd7:25854</guid><dc:creator>Dark Dominion</dc:creator><slash:comments>0</slash:comments><comments>https://www.dotnetzone.gr:443/cs/forums/thread/25854.aspx</comments><wfw:commentRss>https://www.dotnetzone.gr:443/cs/forums/commentrss.aspx?SectionID=74&amp;PostID=25854</wfw:commentRss><description>Έχω ένα μικρό πρόγραμμα το οποίο λειτουργεί ως interface για μία βάση. Ο χρήστης προσθέτει, αφαιρεί και μετακινείται μεταξύ των τιμών με ένα Binding Navigator. Θέλω στη περίπτωση που κάποιο από τα components δεν έχει πάρει τιμή, ο χρήστης να μη μπορεί να μετακινηθεί μεταξύ των εγγραφών και να του πετάγεται ένα messagebox ότι λείπει κάτι στην συγκεκριμένη εγγραφή (Το οποίο θα τονίζεται από την εμφάνιση ενός μηνύματος του error provider). Αν είναι εύκολο ας μου δώσει κάποιος ένα απλό παράδειγμα. Ευχαριστώ.&lt;br&gt;</description></item></channel></rss>