<rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:trackback="http://madskills.com/public/xml/rss/module/trackback/" xmlns:wfw="http://wellformedweb.org/CommentAPI/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/" xmlns:copyright="http://blogs.law.harvard.edu/tech/rss" xmlns:image="http://purl.org/rss/1.0/modules/image/">
    <channel>
        <title>DataGrid</title>
        <link>http://onteorasoftware.com/category/10.aspx</link>
        <description>DataGrid</description>
        <language>en-US</language>
        <copyright>Ken Tucker</copyright>
        <generator>Subtext Version 2.1.2.2</generator>
        <item>
            <title>Datagrid Validation</title>
            <link>http://blog.onteorasoftware.net/archive/2007/09/16/datagrid-validation.aspx</link>
            <description>&lt;h3 align="center"&gt;Datagrid Validation&lt;/h3&gt;&lt;br /&gt;
&lt;p&gt;
The DataGridView has a &lt;a href="http://msdn2.microsoft.com/en-us/library/system.windows.forms.datagridview.cellvalidating(VS.80).aspx"&gt;CellValidating Event&lt;/a&gt; to validate the data entered. Here is how to do it with the DataGrid. 
&lt;/p&gt;
&lt;br /&gt;
&lt;p&gt;
There are 2 method to do this. My method is to add a tablestyle to the datagrid. For the cells I want to validate I handle the DataGridTextBoxColumn's Textbox's Validate event. George Shepherd's method is use the CurrentCellChanged event. You can read about this method in the &lt;a href="http://windowsforms.net/FAQs/default.aspx?PageID=2&amp;amp;ItemID=550&amp;amp;CategoryID=3&amp;amp;tabindex=3"&gt;Windows Forms FAQ.&lt;/a&gt; 
&lt;/p&gt;
&lt;p&gt;
&lt;br /&gt;
&lt;br /&gt;
using System;&lt;br /&gt;
using System.Collections.Generic;&lt;br /&gt;
using System.ComponentModel;&lt;br /&gt;
using System.Data;&lt;br /&gt;
using System.Data.SqlClient;&lt;br /&gt;
using System.Drawing;&lt;br /&gt;
using System.Text;&lt;br /&gt;
using System.Windows.Forms;
&lt;/p&gt;
&lt;p&gt;
namespace CSDatagrid&lt;br /&gt;
{&lt;br /&gt;
    public partial class Form1 : Form&lt;br /&gt;
    {&lt;br /&gt;
        public Form1()&lt;br /&gt;
        {&lt;br /&gt;
            InitializeComponent();&lt;br /&gt;
        }
&lt;/p&gt;
&lt;p&gt;
        private void Form1_Load(object sender, EventArgs e)&lt;br /&gt;
        {&lt;br /&gt;
            String strConn = "Server = .\\SqlExpress;Database = Pubs;Integrated Security = SSPI;";&lt;br /&gt;
            DataTable dt = new DataTable();&lt;br /&gt;
            SqlConnection conn = new SqlConnection(strConn);&lt;br /&gt;
            SqlDataAdapter da = new SqlDataAdapter("Select Title, price from titles", conn);&lt;br /&gt;
            da.Fill(dt);&lt;br /&gt;
            dataGrid1.DataSource = dt;&lt;br /&gt;
            CurrencyManager cm = this.BindingContext[dt] as CurrencyManager;&lt;br /&gt;
            PropertyDescriptor pd = cm.GetItemProperties()["price"];
&lt;/p&gt;
&lt;p&gt;
            DataGridTableStyle ts = new DataGridTableStyle();&lt;br /&gt;
            ts.MappingName = dt.TableName;
&lt;/p&gt;
&lt;p&gt;
            DataGridTextBoxColumn tcTitle = new DataGridTextBoxColumn();&lt;br /&gt;
            tcTitle.MappingName = "Title";&lt;br /&gt;
            tcTitle.HeaderText = "Title";&lt;br /&gt;
            tcTitle.Width = 250;&lt;br /&gt;
            DataGridTextBoxColumn tcPrice = new DataGridTextBoxColumn(pd, "c2");&lt;br /&gt;
            tcPrice.MappingName = "price";&lt;br /&gt;
            tcPrice.HeaderText = "Book Price";&lt;br /&gt;
            tcPrice.Width = 100;&lt;br /&gt;
            tcPrice.TextBox.Validating += new CancelEventHandler(TextBox_Validating);&lt;br /&gt;
            ts.GridColumnStyles.Add(tcTitle);&lt;br /&gt;
            ts.GridColumnStyles.Add(tcPrice);
&lt;/p&gt;
&lt;p&gt;
            dataGrid1.TableStyles.Add(ts);&lt;br /&gt;
        }
&lt;/p&gt;
&lt;p&gt;
        void TextBox_Validating(Object sender, CancelEventArgs e)&lt;br /&gt;
        {&lt;br /&gt;
            TextBox txt = (TextBox)sender;&lt;br /&gt;
            txt.Text = txt.Text.Replace("$", "");&lt;br /&gt;
        }
&lt;/p&gt;
&lt;p&gt;
    }&lt;br /&gt;
}&lt;br /&gt;
&lt;/p&gt;
&lt;p&gt;
You will find a VB example on the &lt;a href="http://www.vb-tips.com/dbpages.aspx?ID=bece831d-6742-4364-bd0d-203ca99d2825"&gt;VB-Tips Website&lt;/a&gt; 
&lt;/p&gt;
&lt;img src="http://blog.onteorasoftware.net/aggbug/89.aspx" width="1" height="1" /&gt;</description>
            <dc:creator>Ken Tucker</dc:creator>
            <guid>http://blog.onteorasoftware.net/archive/2007/09/16/datagrid-validation.aspx</guid>
            <pubDate>Sun, 16 Sep 2007 19:05:42 GMT</pubDate>
            <wfw:comment>http://blog.onteorasoftware.net/comments/89.aspx</wfw:comment>
            <comments>http://blog.onteorasoftware.net/archive/2007/09/16/datagrid-validation.aspx#feedback</comments>
            <slash:comments>2</slash:comments>
            <wfw:commentRss>http://blog.onteorasoftware.net/comments/commentRss/89.aspx</wfw:commentRss>
        </item>
    </channel>
</rss>