Home All Groups Group Topic Archive Search About

Datagrid cell change event? Where to find event.

Author
29 Mar 2005 5:35 PM
Roger
I have a datagrid and would like to know what even fires when a cell is
changed?

I want to know when the user changes a cell and moves to the next.  I have
some code that needs to be done to make sure entry is valid?


Thanks,

Rog

Author
29 Mar 2005 6:04 PM
M. Posseth
copied from one of my projects

Private Sub dgModel_CurrentCellChanged(ByVal sender As Object, ByVal e As
System.EventArgs) Handles dgModel.CurrentCellChanged

dgStyleSelection(dgModel, dgModel.CurrentCell.RowNumber())

End Sub


so you use the "CurrentCellChanged"  event   (this fires by  mouse and
keyboard )

M. Posseth





Show quoteHide quote
"Roger" <davi***@netins.net> wrote in message
news:eAc3BXINFHA.3076@tk2msftngp13.phx.gbl...
> I have a datagrid and would like to know what even fires when a cell is
> changed?
>
> I want to know when the user changes a cell and moves to the next.  I have
> some code that needs to be done to make sure entry is valid?
>
>
> Thanks,
>
> Rog
>
>
Author
29 Mar 2005 6:06 PM
Roger
M,

This shows me that the cell changed, but gives me the new coordinates not
the current coordinates.  I would like to validate the data entered into the
cell before leaving.

Roger


Show quoteHide quote
"M. Posseth" <mich***@nohausystems.nl> wrote in message
news:d2c5gh$ao3$1@reader10.wxs.nl...
>
>
> copied from one of my projects
>
> Private Sub dgModel_CurrentCellChanged(ByVal sender As Object, ByVal e As
> System.EventArgs) Handles dgModel.CurrentCellChanged
>
> dgStyleSelection(dgModel, dgModel.CurrentCell.RowNumber())
>
> End Sub
>
>
> so you use the "CurrentCellChanged"  event   (this fires by  mouse and
> keyboard )
>
> M. Posseth
>
>
>
>
>
> "Roger" <davi***@netins.net> wrote in message
> news:eAc3BXINFHA.3076@tk2msftngp13.phx.gbl...
> > I have a datagrid and would like to know what even fires when a cell is
> > changed?
> >
> > I want to know when the user changes a cell and moves to the next.  I
have
> > some code that needs to be done to make sure entry is valid?
> >
> >
> > Thanks,
> >
> > Rog
> >
> >
>
>
Author
29 Mar 2005 6:25 PM
Cor Ligthert
Roger,

I think, that you can use a datagridtextbox in a datagridtextboxcolumn.
From that you can than use the validating event.

I never used it in this way.

A sample I once made with a tooltip
\\\
Private WithEvents dtbCol1 As DataGridTextBox
Private ToolTip1 As New ToolTip
')
Private Sub Form1_Load(ByVal sender As Object, _
    ByVal e As System.EventArgs) Handles MyBase.Load
        Datagrid1.ReadOnly = True
        Dim ts As New DataGridTableStyle
        ts.MappingName = ds.Tables(0).TableName
        Dim column As New DataGridTextBoxColumn
        ts.GridColumnStyles.Add(column)
        DataGrid1.TableStyles.Add(ts)
        column = DirectCast(ts.GridColumnStyles(0), DataGridTextBoxColumn)
        dtbCol1 = DirectCast(column.TextBox, DataGridTextBox)
        column.MappingName = ds.Tables(0).Columns(0).ColumnName
        column.HeaderText = "Cor"
        column.Width = 30
        dv = New DataView(ds.Tables(0))
        dv.AllowNew = False
        DataGrid1.DataSource = dv
End Sub
Private Sub dtbCol1_ToolTip(ByVal sender As Object, _
    ByVal e As System.EventArgs) Handles dtbCol1.MouseEnter
        ToolTip1.SetToolTip(DirectCast(sender, DataGridTextBox), _
        "Row: " & DataGrid1.CurrentRowIndex + 1)
End Sub
///

I hope this helps,

Cor
Author
29 Mar 2005 8:45 PM
M. Posseth
aha

well you could declare a static variabel and read the previous cell values
with it ( i am famous for my simplistic solutions  :-)      )

or

There are two types of input validation available for the Windows Forms
DataGrid control. If the user attempts to enter a value that is of an
unacceptable data type for the cell, for example a string into an integer,
the new invalid value is replaced with the old value. This kind of input
validation is done automatically and cannot be customized.
The other type of input validation can be used to reject any unacceptable
data, for example a zero value in a field that must be greater than or equal
to one, or an inappropriate string. This is done in the dataset by writing
an event handler for the DataTable.ColumnChanging or DataTable.RowChanging
event. The example below uses the ColumnChanging event because the
unacceptable value is disallowed for the "Product" column in particular. You
might use the RowChanging event for checking that the value of an "End Date"
column is later than the "Start Date" column in the same row.

Private Sub Customers_ColumnChanging(ByVal sender As Object, _
ByVal e As System.Data.DataColumnChangeEventArgs)
   ' Only check for errors in the Product column
   If (e.Column.ColumnName.Equals("Product")) Then
      ' Do not allow "Automobile" as a product.
      If CType(e.ProposedValue, String) = "Automobile" Then
         Dim badValue As Object = e.ProposedValue
         e.ProposedValue = "Bad Data"
         e.Row.RowError = "The Product column contians an error"
         e.Row.SetColumnError(e.Column, "Product cannot be " & _
         CType(badValue, String))
      End If
   End If
End Sub
' Assumes the grid is bound to a dataset called customersDataSet1
' with a table called Customers.
' Put this code in the form's Load event or its constructor.
AddHandler customersDataSet1.Tables("Customers").ColumnChanging, AddressOf
Customers_ColumnChanging

i hope this answers your problem

happy coding :-)



Michel Posseth [MCP]




Show quoteHide quote
"Roger" <davi***@netins.net> wrote in message
news:%23YUQOoINFHA.3296@TK2MSFTNGP15.phx.gbl...
> M,
>
> This shows me that the cell changed, but gives me the new coordinates not
> the current coordinates.  I would like to validate the data entered into
the
> cell before leaving.
>
> Roger
>
>
> "M. Posseth" <mich***@nohausystems.nl> wrote in message
> news:d2c5gh$ao3$1@reader10.wxs.nl...
> >
> >
> > copied from one of my projects
> >
> > Private Sub dgModel_CurrentCellChanged(ByVal sender As Object, ByVal e
As
> > System.EventArgs) Handles dgModel.CurrentCellChanged
> >
> > dgStyleSelection(dgModel, dgModel.CurrentCell.RowNumber())
> >
> > End Sub
> >
> >
> > so you use the "CurrentCellChanged"  event   (this fires by  mouse and
> > keyboard )
> >
> > M. Posseth
> >
> >
> >
> >
> >
> > "Roger" <davi***@netins.net> wrote in message
> > news:eAc3BXINFHA.3076@tk2msftngp13.phx.gbl...
> > > I have a datagrid and would like to know what even fires when a cell
is
> > > changed?
> > >
> > > I want to know when the user changes a cell and moves to the next.  I
> have
> > > some code that needs to be done to make sure entry is valid?
> > >
> > >
> > > Thanks,
> > >
> > > Rog
> > >
> > >
> >
> >
>
>