I am using Visual Cobol 2.2 -1 and Visual studio 2012 Problem : How to set a particular datagridview cell active within handling a Datagridview event. The datagridview is NOT BOUND to a dataset. The Windows forms app contains several controls, one of which is the Datagridview. The Datagridview consists of 5 cols in this case. Loading the grid and validatiing / editing / redisplaying values entered is working fine. When the user enters data in the first column (or any other column of course) of a row , the program is using the 'CellEndEdit' event-method to test some values of several columns and process accordingly. ---------------------------------- code begin --------------------------------------------------- * * Method to test what to do * dg-view is the name of the datagrid method-id dg-view_CellEndEdit final private. procedure division using by value sender as object e as type System.Windows.Forms.DataGridViewCellEventArgs. * Within the method i want to set the focus to * the fourth column on the same row for example. * I have searched MSDN and tried other searches but all suggestions do not seem to work : * example of a solution i have tried with the Datagrid property 'SelectionMode' set to 'CellSelect' using designer: set hlp-row to dg-view::CurrentCellAddress::Y. set hlp-col to dg-view::CurrentCellAddress::X. * ..... Get data of the current cell and process according to hlp-col value ....... * ......For the first cell (hlp-col = 0) on the current row the following lines are coded * ......just before leaving the method ............ if hlp-col = 0 invoke dg-view::ClearSelection set dg-view::CurrentCell to dg-view::Rows[hlp-row]::Cells[hlp-col + 3] set dg-view::CurrentCell::Selected to true end-if end method. ---------------------------------- code end --------------------------------------------------- effect: whe the user leaves the first cell on row 0 , the focus will be on the second column instead of the fourth. I have verified that hlp-col = 0 by debugging.
↧