<?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>Απ: Υπολογισμός unbound columns ανά row σε databound datagridview (rowadded / cellformatting events)</title><link>https://www.dotnetzone.gr:443/cs/forums/thread/33295.aspx</link><pubDate>Sun, 01 Jul 2007 03:29:40 GMT</pubDate><guid isPermaLink="false">2622095e-976c-431a-859e-16783ec7ecd7:33295</guid><dc:creator>KelMan</dc:creator><slash:comments>0</slash:comments><comments>https://www.dotnetzone.gr:443/cs/forums/thread/33295.aspx</comments><wfw:commentRss>https://www.dotnetzone.gr:443/cs/forums/commentrss.aspx?SectionID=12&amp;PostID=33295</wfw:commentRss><description>&lt;P class=MsoNormal style="MARGIN:0cm 0cm 10pt;"&gt;Με το δίκιο σου δεν κατάλαβες το “&lt;SPAN style="mso-ansi-language:EN-US;"&gt;out&lt;/SPAN&gt;-&lt;SPAN style="mso-ansi-language:EN-US;"&gt;of&lt;/SPAN&gt;-&lt;SPAN style="mso-ansi-language:EN-US;"&gt;the&lt;/SPAN&gt;-&lt;SPAN style="mso-ansi-language:EN-US;"&gt;box&lt;/SPAN&gt;”, δικό μου λάθος, μπερδεύτικα με το &lt;SPAN style="mso-ansi-language:EN-US;"&gt;computed&lt;/SPAN&gt;&lt;SPAN&gt; &lt;/SPAN&gt;&lt;SPAN style="mso-ansi-language:EN-US;"&gt;column&lt;/SPAN&gt;&lt;SPAN&gt; &lt;/SPAN&gt;του &lt;SPAN style="mso-ansi-language:EN-US;"&gt;DataTable&lt;/SPAN&gt;&lt;SPAN&gt; &lt;/SPAN&gt;όπου μπορείς να ορίσεις &lt;SPAN style="mso-ansi-language:EN-US;"&gt;formula&lt;/SPAN&gt;. &lt;SPAN style="mso-ansi-language:EN-US;"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN:0cm 0cm 10pt;"&gt;Λοιπόν, αν και επιμένω στο ότι σωστότερο είναι το &lt;SPAN style="mso-ansi-language:EN-US;"&gt;extra&lt;/SPAN&gt;&lt;SPAN&gt; &lt;/SPAN&gt;&lt;SPAN style="mso-ansi-language:EN-US;"&gt;column&lt;/SPAN&gt;&lt;SPAN&gt; &lt;/SPAN&gt;να μπει εκ των προτέρων ως &lt;SPAN style="mso-ansi-language:EN-US;"&gt;computed&lt;/SPAN&gt;&lt;SPAN&gt; &lt;/SPAN&gt;&lt;SPAN style="mso-ansi-language:EN-US;"&gt;column&lt;/SPAN&gt;&lt;SPAN&gt; &lt;/SPAN&gt;στο &lt;SPAN style="mso-ansi-language:EN-US;"&gt;DataTable&lt;/SPAN&gt; ή ως &lt;SPAN style="mso-ansi-language:EN-US;"&gt;property&lt;/SPAN&gt; σε &lt;SPAN style="mso-ansi-language:EN-US;"&gt;DataSource&lt;/SPAN&gt;&lt;SPAN&gt; &lt;/SPAN&gt;&lt;SPAN style="mso-ansi-language:EN-US;"&gt;object&lt;/SPAN&gt;, τελικά βρήκα μια λύση για να παίξεις πάνω στο DataGridView. Το κόλπο είναι να βάλεις τον &lt;SPAN style="mso-ansi-language:EN-US;"&gt;DataGridView&lt;/SPAN&gt;&lt;SPAN&gt; &lt;/SPAN&gt;σε &lt;SPAN style="mso-ansi-language:EN-US;"&gt;Virtual&lt;/SPAN&gt;&lt;SPAN&gt; &lt;/SPAN&gt;&lt;SPAN style="mso-ansi-language:EN-US;"&gt;Mode&lt;/SPAN&gt;.&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN:0cm 0cm 10pt;"&gt;&lt;SPAN style="mso-ansi-language:EN-US;"&gt;To&lt;/SPAN&gt;&lt;SPAN&gt; &lt;/SPAN&gt;&lt;SPAN style="mso-ansi-language:EN-US;"&gt;Virtual&lt;/SPAN&gt;&lt;SPAN&gt; &lt;/SPAN&gt;&lt;SPAN style="mso-ansi-language:EN-US;"&gt;Mode&lt;/SPAN&gt;&lt;SPAN&gt; &lt;/SPAN&gt;σε υποχρεώνει να χειρίζεται εσύ το πότε θα περάσεις &lt;SPAN style="mso-ansi-language:EN-US;"&gt;data&lt;/SPAN&gt;&lt;SPAN&gt; &lt;/SPAN&gt;από το &lt;SPAN style="mso-ansi-language:EN-US;"&gt;source&lt;/SPAN&gt;&lt;SPAN&gt; &lt;/SPAN&gt;στο &lt;SPAN style="mso-ansi-language:EN-US;"&gt;DGV&lt;/SPAN&gt;&lt;SPAN&gt; &lt;/SPAN&gt;και πίσω. Στην περίπτωσή, μιας και έχεις &lt;SPAN style="mso-ansi-language:EN-US;"&gt;data&lt;/SPAN&gt;&lt;SPAN&gt; &lt;/SPAN&gt;&lt;SPAN style="mso-ansi-language:EN-US;"&gt;binding&lt;/SPAN&gt;&lt;SPAN&gt; &lt;/SPAN&gt;δεν χρειάζεται να ασχοληθείς με τα &lt;SPAN style="mso-ansi-language:EN-US;"&gt;data&lt;/SPAN&gt;&lt;SPAN&gt; &lt;/SPAN&gt;που έχεις ήδη αλλά μόνο με τα &lt;SPAN style="mso-ansi-language:EN-US;"&gt;data&lt;/SPAN&gt;&lt;SPAN&gt; &lt;/SPAN&gt;που δεν έχεις, ήτοι το &lt;SPAN style="mso-ansi-language:EN-US;"&gt;computed&lt;/SPAN&gt;&lt;SPAN&gt; &lt;/SPAN&gt;&lt;SPAN style="mso-ansi-language:EN-US;"&gt;column&lt;/SPAN&gt;. &lt;SPAN style="mso-ansi-language:EN-US;"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN:0cm 0cm 10pt;"&gt;Αν και τα λέει όλα αρκετά αναλυτικά στο &lt;SPAN style="mso-ansi-language:EN-US;"&gt;MSDN&lt;/SPAN&gt;, σου παραθέτω τον κώδικα που δοκίμασα ότι παίζει το &lt;SPAN style="mso-ansi-language:EN-US;"&gt;concept&lt;/SPAN&gt;. Χρειάζεσαι μια φόρμα και ένα &lt;SPAN style="mso-ansi-language:EN-US;"&gt;data&lt;/SPAN&gt;&lt;SPAN&gt; &lt;/SPAN&gt;&lt;SPAN style="mso-ansi-language:EN-US;"&gt;source&lt;/SPAN&gt;&lt;SPAN&gt; &lt;/SPAN&gt;που στην συγκεκριμένη περίπτωση είναι ο πίνακας &lt;SPAN style="mso-ansi-language:EN-US;"&gt;Products&lt;/SPAN&gt;&lt;SPAN&gt; &lt;/SPAN&gt;. Κάνεις το κλασικό &lt;SPAN style="mso-ansi-language:EN-US;"&gt;data&lt;/SPAN&gt;&lt;SPAN&gt; &lt;/SPAN&gt;&lt;SPAN style="mso-ansi-language:EN-US;"&gt;binding&lt;/SPAN&gt;&lt;SPAN&gt; &lt;/SPAN&gt;και κατόπιν προσθέτεις ένα &lt;SPAN style="mso-ansi-language:EN-US;"&gt;unbound&lt;/SPAN&gt;&lt;SPAN&gt; &lt;/SPAN&gt;&lt;SPAN style="mso-ansi-language:EN-US;"&gt;column&lt;/SPAN&gt;. Εδώ, έχω ένα computed column που είναι το γινόμενο UnitPrice * UnitsInStoc. To unbound column έχει index 7.&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN:0cm 0cm 0pt;LINE-HEIGHT:normal;mso-layout-grid-align:none;"&gt;&lt;SPAN style="FONT-SIZE:10pt;FONT-FAMILY:'Courier New';mso-ansi-language:EN-US;mso-no-proof:yes;"&gt;&lt;SPAN style="mso-spacerun:yes;"&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN:0cm 0cm 10pt;"&gt;&lt;FONT face=Calibri size=3&gt;&lt;FONT face=Tahoma size=2&gt;Οι τιμές που θέλεις να εμφανίζονται στο &lt;SPAN style="mso-ansi-language:EN-US;"&gt;unbound&lt;/SPAN&gt;&lt;SPAN&gt; &lt;/SPAN&gt;&lt;SPAN style="mso-ansi-language:EN-US;"&gt;column&lt;/SPAN&gt;&lt;SPAN&gt; &lt;/SPAN&gt;αποθηκεύονται σε ένα &lt;SPAN style="mso-ansi-language:EN-US;"&gt;Generic&lt;/SPAN&gt;&lt;SPAN&gt; &lt;/SPAN&gt;&lt;SPAN style="mso-ansi-language:EN-US;"&gt;Dictionary&lt;/SPAN&gt;&lt;SPAN&gt; &lt;/SPAN&gt;και μέσα από τα τρία παρακάτω &lt;SPAN style="mso-ansi-language:EN-US;"&gt;events&lt;/SPAN&gt;&lt;SPAN&gt; &lt;/SPAN&gt;τις διαβάζεις και τις γράφεις όταν χρειάζεται.&lt;/FONT&gt; &lt;/FONT&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN:0cm 0cm 0pt;LINE-HEIGHT:normal;mso-layout-grid-align:none;"&gt;&lt;SPAN style="FONT-SIZE:10pt;FONT-FAMILY:'Courier New';mso-ansi-language:EN-US;mso-no-proof:yes;"&gt;&lt;SPAN style="mso-spacerun:yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;SPAN style="COLOR:blue;"&gt;Private&lt;/SPAN&gt; computedValuesStore &lt;SPAN style="COLOR:blue;"&gt;As&lt;/SPAN&gt; System.Collections.Generic.Dictionary(&lt;SPAN style="COLOR:blue;"&gt;Of&lt;/SPAN&gt; &lt;SPAN style="COLOR:blue;"&gt;Integer&lt;/SPAN&gt;, &lt;SPAN style="COLOR:blue;"&gt;Decimal&lt;/SPAN&gt;)&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN:0cm 0cm 0pt;LINE-HEIGHT:normal;mso-layout-grid-align:none;"&gt;&lt;SPAN style="FONT-SIZE:10pt;FONT-FAMILY:'Courier New';mso-ansi-language:EN-US;mso-no-proof:yes;"&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN:0cm 0cm 0pt;LINE-HEIGHT:normal;mso-layout-grid-align:none;"&gt;&lt;SPAN style="FONT-SIZE:10pt;FONT-FAMILY:'Courier New';mso-ansi-language:EN-US;mso-no-proof:yes;"&gt;&lt;SPAN style="mso-spacerun:yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;SPAN style="COLOR:blue;"&gt;Private&lt;/SPAN&gt; &lt;SPAN style="COLOR:blue;"&gt;Sub&lt;/SPAN&gt; ProductsDataGridView_CellValueChanged(&lt;SPAN style="COLOR:blue;"&gt;ByVal&lt;/SPAN&gt; sender &lt;SPAN style="COLOR:blue;"&gt;As&lt;/SPAN&gt; System.Object, &lt;SPAN style="COLOR:blue;"&gt;ByVal&lt;/SPAN&gt; e &lt;SPAN style="COLOR:blue;"&gt;As&lt;/SPAN&gt; System.Windows.Forms.DataGridViewCellEventArgs) &lt;SPAN style="COLOR:blue;"&gt;Handles&lt;/SPAN&gt; ProductsDataGridView.CellValueChanged&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN:0cm 0cm 0pt;LINE-HEIGHT:normal;mso-layout-grid-align:none;"&gt;&lt;SPAN style="FONT-SIZE:10pt;FONT-FAMILY:'Courier New';mso-ansi-language:EN-US;mso-no-proof:yes;"&gt;&lt;SPAN style="mso-spacerun:yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;SPAN style="COLOR:blue;"&gt;If&lt;/SPAN&gt; e.RowIndex &amp;lt;&amp;gt; -1 &lt;SPAN style="COLOR:blue;"&gt;AndAlso&lt;/SPAN&gt; e.ColumnIndex = 7 &lt;SPAN style="COLOR:blue;"&gt;Then&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN:0cm 0cm 0pt;LINE-HEIGHT:normal;mso-layout-grid-align:none;"&gt;&lt;SPAN style="FONT-SIZE:10pt;FONT-FAMILY:'Courier New';mso-ansi-language:EN-US;mso-no-proof:yes;"&gt;&lt;SPAN style="mso-spacerun:yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;SPAN style="COLOR:blue;"&gt;Dim&lt;/SPAN&gt; productID &lt;SPAN style="COLOR:blue;"&gt;As&lt;/SPAN&gt; &lt;SPAN style="COLOR:blue;"&gt;Integer&lt;/SPAN&gt; = &lt;SPAN style="COLOR:blue;"&gt;CType&lt;/SPAN&gt;(ProductsDataGridView.Rows(e.RowIndex).Cells(&lt;SPAN style="COLOR:#a31515;"&gt;"ProductID"&lt;/SPAN&gt;).Value, &lt;SPAN style="COLOR:blue;"&gt;Integer&lt;/SPAN&gt;)&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN:0cm 0cm 0pt;LINE-HEIGHT:normal;mso-layout-grid-align:none;"&gt;&lt;SPAN style="FONT-SIZE:10pt;FONT-FAMILY:'Courier New';mso-ansi-language:EN-US;mso-no-proof:yes;"&gt;&lt;SPAN style="mso-spacerun:yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;SPAN style="COLOR:blue;"&gt;Dim&lt;/SPAN&gt; unitPrice &lt;SPAN style="COLOR:blue;"&gt;As&lt;/SPAN&gt; &lt;SPAN style="COLOR:blue;"&gt;Decimal&lt;/SPAN&gt; = &lt;SPAN style="COLOR:blue;"&gt;CType&lt;/SPAN&gt;(ProductsDataGridView.Rows(e.RowIndex).Cells(&lt;SPAN style="COLOR:#a31515;"&gt;"DataGridViewTextBoxColumn6"&lt;/SPAN&gt;).Value, &lt;SPAN style="COLOR:blue;"&gt;Decimal&lt;/SPAN&gt;)&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN:0cm 0cm 0pt;LINE-HEIGHT:normal;mso-layout-grid-align:none;"&gt;&lt;SPAN style="FONT-SIZE:10pt;FONT-FAMILY:'Courier New';mso-ansi-language:EN-US;mso-no-proof:yes;"&gt;&lt;SPAN style="mso-spacerun:yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;SPAN style="COLOR:blue;"&gt;Dim&lt;/SPAN&gt; unitsInStoc &lt;SPAN style="COLOR:blue;"&gt;As&lt;/SPAN&gt; &lt;SPAN style="COLOR:blue;"&gt;Decimal&lt;/SPAN&gt; = &lt;SPAN style="COLOR:blue;"&gt;CType&lt;/SPAN&gt;(ProductsDataGridView.Rows(e.RowIndex).Cells(&lt;SPAN style="COLOR:#a31515;"&gt;"DataGridViewTextBoxColumn7"&lt;/SPAN&gt;).Value, &lt;SPAN style="COLOR:blue;"&gt;Decimal&lt;/SPAN&gt;)&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN:0cm 0cm 0pt;LINE-HEIGHT:normal;mso-layout-grid-align:none;"&gt;&lt;SPAN style="FONT-SIZE:10pt;FONT-FAMILY:'Courier New';mso-ansi-language:EN-US;mso-no-proof:yes;"&gt;&lt;SPAN style="mso-spacerun:yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;computedValuesStore(productID) = unitPrice * unitsInStoc&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN:0cm 0cm 0pt;LINE-HEIGHT:normal;mso-layout-grid-align:none;"&gt;&lt;SPAN style="FONT-SIZE:10pt;FONT-FAMILY:'Courier New';mso-ansi-language:EN-US;mso-no-proof:yes;"&gt;&lt;SPAN style="mso-spacerun:yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;SPAN style="COLOR:blue;"&gt;End&lt;/SPAN&gt; &lt;SPAN style="COLOR:blue;"&gt;If&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN:0cm 0cm 0pt;LINE-HEIGHT:normal;mso-layout-grid-align:none;"&gt;&lt;SPAN style="FONT-SIZE:10pt;FONT-FAMILY:'Courier New';mso-ansi-language:EN-US;mso-no-proof:yes;"&gt;&lt;SPAN style="mso-spacerun:yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;SPAN style="COLOR:blue;"&gt;End&lt;/SPAN&gt; &lt;SPAN style="COLOR:blue;"&gt;Sub&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN:0cm 0cm 0pt;LINE-HEIGHT:normal;mso-layout-grid-align:none;"&gt;&lt;SPAN style="FONT-SIZE:10pt;COLOR:blue;FONT-FAMILY:'Courier New';mso-ansi-language:EN-US;mso-no-proof:yes;"&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN:0cm 0cm 0pt;LINE-HEIGHT:normal;mso-layout-grid-align:none;"&gt;&lt;SPAN style="FONT-SIZE:10pt;FONT-FAMILY:'Courier New';mso-ansi-language:EN-US;mso-no-proof:yes;"&gt;&lt;SPAN style="mso-spacerun:yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;SPAN style="COLOR:blue;"&gt;Private&lt;/SPAN&gt; &lt;SPAN style="COLOR:blue;"&gt;Sub&lt;/SPAN&gt; ProductsDataGridView_CellValueNeeded(&lt;SPAN style="COLOR:blue;"&gt;ByVal&lt;/SPAN&gt; sender &lt;SPAN style="COLOR:blue;"&gt;As&lt;/SPAN&gt; System.Object, &lt;SPAN style="COLOR:blue;"&gt;ByVal&lt;/SPAN&gt; e &lt;SPAN style="COLOR:blue;"&gt;As&lt;/SPAN&gt; System.Windows.Forms.DataGridViewCellValueEventArgs) &lt;SPAN style="COLOR:blue;"&gt;Handles&lt;/SPAN&gt; ProductsDataGridView.CellValueNeeded&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN:0cm 0cm 0pt;LINE-HEIGHT:normal;mso-layout-grid-align:none;"&gt;&lt;SPAN style="FONT-SIZE:10pt;FONT-FAMILY:'Courier New';mso-ansi-language:EN-US;mso-no-proof:yes;"&gt;&lt;SPAN style="mso-spacerun:yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;SPAN style="COLOR:blue;"&gt;If&lt;/SPAN&gt; e.ColumnIndex = 7 &lt;SPAN style="COLOR:blue;"&gt;Then&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN:0cm 0cm 0pt;LINE-HEIGHT:normal;mso-layout-grid-align:none;"&gt;&lt;SPAN style="FONT-SIZE:10pt;FONT-FAMILY:'Courier New';mso-ansi-language:EN-US;mso-no-proof:yes;"&gt;&lt;SPAN style="mso-spacerun:yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;SPAN style="COLOR:blue;"&gt;Dim&lt;/SPAN&gt; productID &lt;SPAN style="COLOR:blue;"&gt;As&lt;/SPAN&gt; &lt;SPAN style="COLOR:blue;"&gt;Integer&lt;/SPAN&gt; = &lt;SPAN style="COLOR:blue;"&gt;CType&lt;/SPAN&gt;(ProductsDataGridView.Rows(e.RowIndex).Cells(&lt;SPAN style="COLOR:#a31515;"&gt;"ProductID"&lt;/SPAN&gt;).Value, &lt;SPAN style="COLOR:blue;"&gt;Integer&lt;/SPAN&gt;)&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN:0cm 0cm 0pt;LINE-HEIGHT:normal;mso-layout-grid-align:none;"&gt;&lt;SPAN style="FONT-SIZE:10pt;FONT-FAMILY:'Courier New';mso-ansi-language:EN-US;mso-no-proof:yes;"&gt;&lt;SPAN style="mso-spacerun:yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;SPAN style="mso-spacerun:yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/SPAN&gt;&lt;SPAN style="COLOR:blue;"&gt;If&lt;/SPAN&gt; computedValuesStore.ContainsKey(productID) &lt;SPAN style="COLOR:blue;"&gt;Then&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN:0cm 0cm 0pt;LINE-HEIGHT:normal;mso-layout-grid-align:none;"&gt;&lt;SPAN style="FONT-SIZE:10pt;FONT-FAMILY:'Courier New';mso-ansi-language:EN-US;mso-no-proof:yes;"&gt;&lt;SPAN style="mso-spacerun:yes;"&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; &lt;/SPAN&gt;e.Value = computedValuesStore(productID)&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN:0cm 0cm 0pt;LINE-HEIGHT:normal;mso-layout-grid-align:none;"&gt;&lt;SPAN style="FONT-SIZE:10pt;FONT-FAMILY:'Courier New';mso-ansi-language:EN-US;mso-no-proof:yes;"&gt;&lt;SPAN style="mso-spacerun:yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;SPAN style="COLOR:blue;"&gt;Else&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN:0cm 0cm 0pt;LINE-HEIGHT:normal;mso-layout-grid-align:none;"&gt;&lt;SPAN style="FONT-SIZE:10pt;FONT-FAMILY:'Courier New';mso-ansi-language:EN-US;mso-no-proof:yes;"&gt;&lt;SPAN style="mso-spacerun:yes;"&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; &lt;/SPAN&gt;&lt;SPAN style="COLOR:blue;"&gt;Dim&lt;/SPAN&gt; unitPrice &lt;SPAN style="COLOR:blue;"&gt;As&lt;/SPAN&gt; &lt;SPAN style="COLOR:blue;"&gt;Decimal&lt;/SPAN&gt; = &lt;SPAN style="COLOR:blue;"&gt;CType&lt;/SPAN&gt;(ProductsDataGridView.Rows(e.RowIndex).Cells(&lt;SPAN style="COLOR:#a31515;"&gt;"DataGridViewTextBoxColumn6"&lt;/SPAN&gt;).Value, &lt;SPAN style="COLOR:blue;"&gt;Decimal&lt;/SPAN&gt;)&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN:0cm 0cm 0pt;LINE-HEIGHT:normal;mso-layout-grid-align:none;"&gt;&lt;SPAN style="FONT-SIZE:10pt;FONT-FAMILY:'Courier New';mso-ansi-language:EN-US;mso-no-proof:yes;"&gt;&lt;SPAN style="mso-spacerun:yes;"&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; &lt;/SPAN&gt;&lt;SPAN style="COLOR:blue;"&gt;Dim&lt;/SPAN&gt; unitsInStoc &lt;SPAN style="COLOR:blue;"&gt;As&lt;/SPAN&gt; &lt;SPAN style="COLOR:blue;"&gt;Decimal&lt;/SPAN&gt; = &lt;SPAN style="COLOR:blue;"&gt;CType&lt;/SPAN&gt;(ProductsDataGridView.Rows(e.RowIndex).Cells(&lt;SPAN style="COLOR:#a31515;"&gt;"DataGridViewTextBoxColumn7"&lt;/SPAN&gt;).Value, &lt;SPAN style="COLOR:blue;"&gt;Decimal&lt;/SPAN&gt;)&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN:0cm 0cm 0pt;LINE-HEIGHT:normal;mso-layout-grid-align:none;"&gt;&lt;SPAN style="FONT-SIZE:10pt;FONT-FAMILY:'Courier New';mso-ansi-language:EN-US;mso-no-proof:yes;"&gt;&lt;SPAN style="mso-spacerun:yes;"&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; &lt;/SPAN&gt;e.Value = unitPrice * unitsInStoc&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN:0cm 0cm 0pt;LINE-HEIGHT:normal;mso-layout-grid-align:none;"&gt;&lt;SPAN style="FONT-SIZE:10pt;FONT-FAMILY:'Courier New';mso-ansi-language:EN-US;mso-no-proof:yes;"&gt;&lt;SPAN style="mso-spacerun:yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;SPAN style="COLOR:blue;"&gt;End&lt;/SPAN&gt; &lt;SPAN style="COLOR:blue;"&gt;If&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN:0cm 0cm 0pt;LINE-HEIGHT:normal;mso-layout-grid-align:none;"&gt;&lt;SPAN style="FONT-SIZE:10pt;FONT-FAMILY:'Courier New';mso-ansi-language:EN-US;mso-no-proof:yes;"&gt;&lt;SPAN style="mso-spacerun:yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;SPAN style="COLOR:blue;"&gt;End&lt;/SPAN&gt; &lt;SPAN style="COLOR:blue;"&gt;If&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN:0cm 0cm 0pt;LINE-HEIGHT:normal;mso-layout-grid-align:none;"&gt;&lt;SPAN style="FONT-SIZE:10pt;FONT-FAMILY:'Courier New';mso-ansi-language:EN-US;mso-no-proof:yes;"&gt;&lt;SPAN style="mso-spacerun:yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;SPAN style="COLOR:blue;"&gt;End&lt;/SPAN&gt; &lt;SPAN style="COLOR:blue;"&gt;Sub&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN:0cm 0cm 0pt;LINE-HEIGHT:normal;mso-layout-grid-align:none;"&gt;&lt;SPAN style="FONT-SIZE:10pt;COLOR:blue;FONT-FAMILY:'Courier New';mso-ansi-language:EN-US;mso-no-proof:yes;"&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN:0cm 0cm 0pt;LINE-HEIGHT:normal;mso-layout-grid-align:none;"&gt;&lt;SPAN style="FONT-SIZE:10pt;FONT-FAMILY:'Courier New';mso-ansi-language:EN-US;mso-no-proof:yes;"&gt;&lt;SPAN style="mso-spacerun:yes;"&gt;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;SPAN style="mso-spacerun:yes;"&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;SPAN style="COLOR:blue;"&gt;Private&lt;/SPAN&gt; &lt;SPAN style="COLOR:blue;"&gt;Sub&lt;/SPAN&gt; ProductsDataGridView_CellValuePushed(&lt;SPAN style="COLOR:blue;"&gt;ByVal&lt;/SPAN&gt; sender &lt;SPAN style="COLOR:blue;"&gt;As&lt;/SPAN&gt; System.Object, &lt;SPAN style="COLOR:blue;"&gt;ByVal&lt;/SPAN&gt; e &lt;SPAN style="COLOR:blue;"&gt;As&lt;/SPAN&gt; System.Windows.Forms.DataGridViewCellValueEventArgs) &lt;SPAN style="COLOR:blue;"&gt;Handles&lt;/SPAN&gt; ProductsDataGridView.CellValuePushed&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN:0cm 0cm 0pt;LINE-HEIGHT:normal;mso-layout-grid-align:none;"&gt;&lt;SPAN style="FONT-SIZE:10pt;FONT-FAMILY:'Courier New';mso-ansi-language:EN-US;mso-no-proof:yes;"&gt;&lt;SPAN style="mso-spacerun:yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;SPAN style="COLOR:blue;"&gt;If&lt;/SPAN&gt; e.ColumnIndex = 7 &lt;SPAN style="COLOR:blue;"&gt;Then&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN:0cm 0cm 0pt;LINE-HEIGHT:normal;mso-layout-grid-align:none;"&gt;&lt;SPAN style="FONT-SIZE:10pt;FONT-FAMILY:'Courier New';mso-ansi-language:EN-US;mso-no-proof:yes;"&gt;&lt;SPAN style="mso-spacerun:yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;SPAN style="COLOR:blue;"&gt;Dim&lt;/SPAN&gt; productID &lt;SPAN style="COLOR:blue;"&gt;As&lt;/SPAN&gt; &lt;SPAN style="COLOR:blue;"&gt;Integer&lt;/SPAN&gt; = &lt;SPAN style="COLOR:blue;"&gt;CType&lt;/SPAN&gt;(ProductsDataGridView.Rows(e.RowIndex).Cells(&lt;SPAN style="COLOR:#a31515;"&gt;"ProductID"&lt;/SPAN&gt;).Value, &lt;SPAN style="COLOR:blue;"&gt;Integer&lt;/SPAN&gt;)&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN:0cm 0cm 0pt;LINE-HEIGHT:normal;mso-layout-grid-align:none;"&gt;&lt;SPAN style="FONT-SIZE:10pt;FONT-FAMILY:'Courier New';mso-ansi-language:EN-US;mso-no-proof:yes;"&gt;&lt;SPAN style="mso-spacerun:yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;SPAN style="COLOR:blue;"&gt;If&lt;/SPAN&gt; &lt;SPAN style="COLOR:blue;"&gt;Not&lt;/SPAN&gt; computedValuesStore.ContainsKey(productID) &lt;SPAN style="COLOR:blue;"&gt;Then&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN:0cm 0cm 0pt;LINE-HEIGHT:normal;mso-layout-grid-align:none;"&gt;&lt;SPAN style="FONT-SIZE:10pt;FONT-FAMILY:'Courier New';mso-ansi-language:EN-US;mso-no-proof:yes;"&gt;&lt;SPAN style="mso-spacerun:yes;"&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; &lt;/SPAN&gt;computedValuesStore.Add(productID, &lt;SPAN style="COLOR:blue;"&gt;CType&lt;/SPAN&gt;(e.Value, &lt;SPAN style="COLOR:blue;"&gt;Decimal&lt;/SPAN&gt;))&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN:0cm 0cm 0pt;LINE-HEIGHT:normal;mso-layout-grid-align:none;"&gt;&lt;SPAN style="FONT-SIZE:10pt;FONT-FAMILY:'Courier New';mso-ansi-language:EN-US;mso-no-proof:yes;"&gt;&lt;SPAN style="mso-spacerun:yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;SPAN style="COLOR:blue;"&gt;Else&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN:0cm 0cm 0pt;LINE-HEIGHT:normal;mso-layout-grid-align:none;"&gt;&lt;SPAN style="FONT-SIZE:10pt;FONT-FAMILY:'Courier New';mso-ansi-language:EN-US;mso-no-proof:yes;"&gt;&lt;SPAN style="mso-spacerun:yes;"&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; &lt;/SPAN&gt;computedValuesStore(productID) = &lt;SPAN style="COLOR:blue;"&gt;CType&lt;/SPAN&gt;(e.Value, &lt;SPAN style="COLOR:blue;"&gt;Decimal&lt;/SPAN&gt;)&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN:0cm 0cm 0pt;LINE-HEIGHT:normal;mso-layout-grid-align:none;"&gt;&lt;SPAN style="FONT-SIZE:10pt;FONT-FAMILY:'Courier New';mso-ansi-language:EN-US;mso-no-proof:yes;"&gt;&lt;SPAN style="mso-spacerun:yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;/SPAN&gt;&lt;SPAN style="FONT-SIZE:10pt;COLOR:blue;FONT-FAMILY:'Courier New';mso-no-proof:yes;"&gt;End&lt;/SPAN&gt;&lt;SPAN style="FONT-SIZE:10pt;FONT-FAMILY:'Courier New';mso-no-proof:yes;"&gt; &lt;SPAN style="COLOR:blue;"&gt;If&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN:0cm 0cm 0pt;LINE-HEIGHT:normal;mso-layout-grid-align:none;"&gt;&lt;SPAN style="FONT-SIZE:10pt;FONT-FAMILY:'Courier New';mso-no-proof:yes;"&gt;&lt;SPAN style="mso-spacerun:yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;SPAN style="COLOR:blue;"&gt;End&lt;/SPAN&gt; &lt;SPAN style="COLOR:blue;"&gt;If&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN:0cm 0cm 10pt;"&gt;&lt;SPAN style="FONT-SIZE:10pt;LINE-HEIGHT:115%;FONT-FAMILY:'Courier New';mso-no-proof:yes;"&gt;&lt;SPAN style="mso-spacerun:yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;SPAN style="COLOR:blue;"&gt;End&lt;/SPAN&gt; &lt;SPAN style="COLOR:blue;"&gt;Sub&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/P&gt;</description></item><item><title>Απ: Υπολογισμός unbound columns ανά row σε databound datagridview (rowadded / cellformatting events)</title><link>https://www.dotnetzone.gr:443/cs/forums/thread/33280.aspx</link><pubDate>Fri, 29 Jun 2007 22:27:38 GMT</pubDate><guid isPermaLink="false">2622095e-976c-431a-859e-16783ec7ecd7:33280</guid><dc:creator>cap</dc:creator><slash:comments>0</slash:comments><comments>https://www.dotnetzone.gr:443/cs/forums/thread/33280.aspx</comments><wfw:commentRss>https://www.dotnetzone.gr:443/cs/forums/commentrss.aspx?SectionID=12&amp;PostID=33280</wfw:commentRss><description>&lt;P&gt;Μετά από λίγη έρευνα, κοιτάξτε το κουλό που συμβαίνει στο RowsAdded Event:&lt;/P&gt;
&lt;P&gt;Σύμφωνα με το βιβλιαράκι "Databinding With Windows Forms 2.0" οπου βρήκα ένα απόσπασμα ισχύει το εξής: &lt;EM&gt;The RowsAdded event can be fired for one row at a time if you are programmatically adding rows in a loop, or it can be fired&lt;STRONG&gt;&lt;FONT size=4&gt; just once&lt;/FONT&gt;&lt;/STRONG&gt; for a whole batch of rows being added, such as when you &lt;STRONG&gt;data bind&lt;/STRONG&gt; or use the AddCopies method of the rows collection.&lt;/EM&gt; &lt;/P&gt;
&lt;P&gt;Οκ, αρα λοιπόν βρήκαμε οτι όταν κάνουμε databinding το RowsAdded event έχει διαφορετική συμπεριφορά. @%@$%@#$. Για να δούμε όμως, ισχύει τελικά αυτό; Εβαλα το εξής στο RowsAdded Event για να δούμε τι θα γίνει:&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;Private&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; DataGridView1_RowsAdded(&lt;SPAN style="FONT-WEIGHT:normal;FONT-SIZE:11px;COLOR:blue;FONT-FAMILY:Courier New;BACKGROUND-COLOR:transparent;"&gt;ByVal&lt;/SPAN&gt; sender &lt;SPAN style="FONT-WEIGHT:normal;FONT-SIZE:11px;COLOR:blue;FONT-FAMILY:Courier New;BACKGROUND-COLOR:transparent;"&gt;As&lt;/SPAN&gt; &lt;SPAN style="FONT-WEIGHT:normal;FONT-SIZE:11px;COLOR:blue;FONT-FAMILY:Courier New;BACKGROUND-COLOR:transparent;"&gt;Object&lt;/SPAN&gt;, &lt;SPAN style="FONT-WEIGHT:normal;FONT-SIZE:11px;COLOR:blue;FONT-FAMILY:Courier New;BACKGROUND-COLOR:transparent;"&gt;ByVal&lt;/SPAN&gt; e &lt;SPAN style="FONT-WEIGHT:normal;FONT-SIZE:11px;COLOR:blue;FONT-FAMILY:Courier New;BACKGROUND-COLOR:transparent;"&gt;As&lt;/SPAN&gt; System.Windows.Forms.DataGridViewRowsAddedEventArgs) &lt;SPAN style="FONT-WEIGHT:normal;FONT-SIZE:11px;COLOR:blue;FONT-FAMILY:Courier New;BACKGROUND-COLOR:transparent;"&gt;Handles&lt;/SPAN&gt; DataGridView1.RowsAdded&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;MsgBox&lt;/SPAN&gt;(&lt;SPAN style="FONT-WEIGHT:normal;FONT-SIZE:11px;COLOR:#666666;FONT-FAMILY:Courier New;BACKGROUND-COLOR:#e4e4e4;"&gt;"rowindex:"&lt;/SPAN&gt; &lt;SPAN style="FONT-WEIGHT:normal;FONT-SIZE:11px;COLOR:red;FONT-FAMILY:Courier New;BACKGROUND-COLOR:transparent;"&gt;+&lt;/SPAN&gt; e.RowIndex.ToString &lt;SPAN style="FONT-WEIGHT:normal;FONT-SIZE:11px;COLOR:red;FONT-FAMILY:Courier New;BACKGROUND-COLOR:transparent;"&gt;+&lt;/SPAN&gt; &lt;SPAN style="FONT-WEIGHT:normal;FONT-SIZE:11px;COLOR:#666666;FONT-FAMILY:Courier New;BACKGROUND-COLOR:#e4e4e4;"&gt;" rowcount:"&lt;/SPAN&gt; &lt;SPAN style="FONT-WEIGHT:normal;FONT-SIZE:11px;COLOR:red;FONT-FAMILY:Courier New;BACKGROUND-COLOR:transparent;"&gt;+&lt;/SPAN&gt; e.RowCount.ToString)&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;&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;Με την εκτέλεση φαίνεται ξεκάθαρα οτι το event τρέχει ΔΥΟ φορές και μόνο δυο. Τα αποτελέσματα είναι τα εξής (έχω 570 γραμμές που θα μπουν στο datagridview):&lt;/P&gt;
&lt;P&gt;rowindex:0 rowcount:1&lt;BR&gt;rowindex:1 rowcount:570&lt;BR&gt;&lt;BR&gt;ΕΛΕΟΣ κύριοι που σχεδιάσατε το datagridview! Διαφορετική συμπεριφορά στο programmatic binding, διαφορετική στο declarative, και τρέχει και ΔΥΟ φορές το event; Τελος πάντων, μπορώ τώρα να δέσω τα unbound columns μου στο event αυτό με ένα loop ως εξής:&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; r &lt;SPAN style="FONT-WEIGHT:normal;FONT-SIZE:11px;COLOR:blue;FONT-FAMILY:Courier New;BACKGROUND-COLOR:transparent;"&gt;As&lt;/SPAN&gt; DataGridViewRow &lt;SPAN style="FONT-WEIGHT:normal;FONT-SIZE:11px;COLOR:blue;FONT-FAMILY:Courier New;BACKGROUND-COLOR:transparent;"&gt;In&lt;/SPAN&gt; DataGridView1.Rows&lt;BR&gt;&lt;BR&gt;&lt;SPAN style="FONT-WEIGHT:normal;FONT-SIZE:11px;COLOR:green;FONT-FAMILY:Courier New;BACKGROUND-COLOR:transparent;"&gt;' ...εδώ ο καλός ο κώδικας που δένει τα unbound&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;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;Και βέβαια, FYI και FMI, μπορεί να χρησιμοποιηθεί και το CellFormatting Event, το οποίο όμως έχει την κακή διάθεση να τρέχει συνεχώς. Ακόμα και αν το περιορισουμε κοιτώντας το Index του column, και πάλι δεν μπορούμε να αποφύγουμε το οτι τρέχει οταν ο δρομέας μας περνάει απλώς πάνω από ένα κελί...&lt;/P&gt;
&lt;P&gt;Χαρακτηρίζω το θέμα ως επιλυθέν θεωρώντας οτι το αρχικό πρόβλημα λύθηκε. Παρ'όλα αυτά, θα ήθελα να ακούσω απόψεις για την περίεργη αυτή συμπεριφορά του RowsAdded event.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;</description></item><item><title>Απ: Υπολογισμός unbound columns ανά row σε databound datagridview (rowadded / cellformatting events)</title><link>https://www.dotnetzone.gr:443/cs/forums/thread/33279.aspx</link><pubDate>Fri, 29 Jun 2007 20:48:30 GMT</pubDate><guid isPermaLink="false">2622095e-976c-431a-859e-16783ec7ecd7:33279</guid><dc:creator>cap</dc:creator><slash:comments>0</slash:comments><comments>https://www.dotnetzone.gr:443/cs/forums/thread/33279.aspx</comments><wfw:commentRss>https://www.dotnetzone.gr:443/cs/forums/commentrss.aspx?SectionID=12&amp;PostID=33279</wfw:commentRss><description>&lt;P&gt;Κάνοντας declarative την όλη ιστορία αναπόφευκτα έχω ένα bindingsource ως datasource στο datagridview. &lt;/P&gt;
&lt;P&gt;Δεν κατάλαβα τη φράση σου με το out-of-the-box για να είμαι ειλικρινής. Το unbound column προστίθεται κανονικά. Οταν όμως πάω να το γεμίσω προγραμματιστικά θα πρέπει να "κολλήσω" τον κώδικα που το γεμίζει για κάθε row σε κάποιο event. Εχω τα δύο events που προανέφερα, με ενδεδειγμένο για την περίπτωσή μου το RowsAdded, όμως φαίνεται να μην λειτουργεί σωστά (να μην γίνεται raise για κάθε row, όπως προανέφερα).&lt;/P&gt;
&lt;P&gt;Υπάρχει event στο bindingsource το οποίο να τρέχει ανά row όταν γίνεται αυτό bind σε datagridview; Αν ναι, πώς θα μπορούσα όμως να πειράξω το unbound column, μια και φαντάζομαι οτι αυτό το event (αν υπάρχει) θα τρέχει ΠΡΙΝ προστεθεί νέο row στο datagridview;&lt;/P&gt;</description></item><item><title>Απ: Υπολογισμός unbound columns ανά row σε databound datagridview (rowadded / cellformatting events)</title><link>https://www.dotnetzone.gr:443/cs/forums/thread/33274.aspx</link><pubDate>Fri, 29 Jun 2007 15:41:01 GMT</pubDate><guid isPermaLink="false">2622095e-976c-431a-859e-16783ec7ecd7:33274</guid><dc:creator>KelMan</dc:creator><slash:comments>0</slash:comments><comments>https://www.dotnetzone.gr:443/cs/forums/thread/33274.aspx</comments><wfw:commentRss>https://www.dotnetzone.gr:443/cs/forums/commentrss.aspx?SectionID=12&amp;PostID=33274</wfw:commentRss><description>&lt;P&gt;Σωτήρη, αν και μου κάνει εντύπωση το γιατί δεν παίξει το unbound column out-of-the-box, δοκίμασε να παίξεις ένα level παραπίσω. Αν έχεις ως datasource ένα DataTable, άλλαξε το DataSet και πρόσθεσε ένα computed column. Άν έχεις κάποιo object, βάλε ένα νέο property. Έτσι, ο designer θα το δει κατευθείαν. Επίσης, δοκίμασε να εκμεταλλευτείς τα events του DataBindingSource.&lt;/P&gt;</description></item><item><title>Υπολογισμός unbound columns ανά row σε databound datagridview (rowadded / cellformatting events)</title><link>https://www.dotnetzone.gr:443/cs/forums/thread/33271.aspx</link><pubDate>Fri, 29 Jun 2007 09:41:30 GMT</pubDate><guid isPermaLink="false">2622095e-976c-431a-859e-16783ec7ecd7:33271</guid><dc:creator>cap</dc:creator><slash:comments>0</slash:comments><comments>https://www.dotnetzone.gr:443/cs/forums/thread/33271.aspx</comments><wfw:commentRss>https://www.dotnetzone.gr:443/cs/forums/commentrss.aspx?SectionID=12&amp;PostID=33271</wfw:commentRss><description>&lt;P&gt;Το σενάριο είναι απλό: Εχω ένα databound datagridview στο οποίο θέλω να προσθέσω ένα unbound column το οποίο να υπολογίζει την τιμή του βάσει κάποιων άλλων τιμών του τρέχοντος row. Συνεπώς όταν ξεκινάει το datagridview να φέρνει τα rows του, θέλω να γίνεται ο υπολογισμός για κάθε row. Αμ δε!&lt;/P&gt;
&lt;P&gt;EDIT: Για να είναι πιό πλήρης η περιγραφή να πω οτι κάνω declarative και όχι programmatic databinding. &lt;/P&gt;
&lt;P&gt;Δοκίμασα να αξιοποιήσω το RowsAdded event, αλλά έχει την εξής περίεργη συμπεριφορά (παρά τα όσα χαρούμενα λέει το documentation για αυτό): Γινεται raise ΔΥΟ ΜΟΝΟ φορές, όσα rows και να έχω, και μάλιστα ο κώδικας που έχω γράψει εντός του event φαίνεται να τρέχει κανονικά και να υπολογίζει τιμές ΜΟΝΟ ΓΙΑ ΤΑ ΔΥΟ ΠΡΩΤΑ rows του datagridview μου! Μετά τίποτα! Ακόμα και με debug/step είδα οτι μετά τη δεύτερη φορά που γίνεται raise το event, "σκάνε" επάνω στο datagrid όλα τα rows χωρίς να ξανατρέξει το άτιμο. (Δεν είμαι τρελλός! Και αυτός εδώ ο άμοιρος το έχει διαπιστώσει: &lt;A href="http://forums.microsoft.com/MSDN/ShowPost.aspx?PostID=1586558&amp;amp;SiteID=1"&gt;http://forums.microsoft.com/MSDN/ShowPost.aspx?PostID=1586558&amp;amp;SiteID=1&lt;/A&gt;)&lt;/P&gt;
&lt;P&gt;Δοκίμασα επίσης το CellFormatting event ως το μόνο εναλλακτικό που είχα στη διάθεσή μου. Δυστυχώς όμως αυτό τρέχει όχι μόνο όταν φτιάχνεται το datagridview, αλλά και όταν αλλάξω κελί, αλλάξω row, κουνήσω τον κέρσορα, βήξω, φταρνιστώ, κάνει δηλώσεις ο κυβερνητικός εκπρόσωπος ή κορνάρει ένα αυτοκίνητο από το δρόμο. Οπως καταλαβαίνετε, μάλλον είναι ασύμφορο μια και η τιμή του unbound column απαιτεί χρόνο και resources για να υπολογιστεί.&lt;/P&gt;
&lt;P&gt;Τι άλλο θα μπορούσα να δοκιμάσω; Να τραβήξω καμμια αγωγή στο RowsAdded event για παραπλάνηση κοινού;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;</description></item></channel></rss>