Devexpress GridControl rows savedata - c#

I have a sample GridControl and it's dataSource = List
When I run the app, I first enter a cell value, when I click enter to move to the next cell, I lost the value of the last cell;
I mean when I tape anything in any cell I lose it when I move to anther cell!! is that normal?where is my problem?
I try to bind it to a dataset, everything go OK!!

Related

How to programmatically set focus on a row in a WinForms DataGrid when selecting it?

I have a WinForms DataGrid (not DataGridView). When I manually select a row, the row indicator, shown in the first image below, shows on the selected rows. However, if I set the DataGrid's datasource after a save and programmatically select the second row using:
datagrid.Select(1), the second row gets the highlighted background color but the focus indicator is on the first row as shown in the second image below.
Is there a way to make the selected row get focus and have the indicator display for the row?
Since this is the old System.Windows.Forms.DataGrid, the Row selection method is slightly different than the DataGridView's.
You can select a Row, as you're doing, with the Select() method.
This doesn't change the Current Row. To make a Row the Current, you can use the CurrentRowIndex property.
Combined, these two move the selection and set the Current Row.
// Selects and highlights the Row at index 1
dataGrid.Select(1);
// Make the Row at index 1 the Current
dataGrid.CurrentRowIndex = 1;
Something similar in a DataGridView:
(One of the methods that can be used to achieve this result)
// Move the focus and selects the Row at index 1
dataGridView.Rows[1].Selected = true;
// Make the Row at index 1 the Current setting the CurrentCell property
dataGridView.CurrentCell = dgvTest.Rows[1].Cells[0];
Try this:
dataGridView1.FirstDisplayedScrollingRowIndex =
dataGridView1.Rows[dataGridView1.Rows.Count - 2].Index;

WPF c# DataGrid value changes are not notified cell by cell

I have a datagrid with data bound with an Observable collection of objects which implement InotifyChanged. When i select an item in the data grid, the selection unit should be the entire row (not cell by cell). However, when i update a cell and navigates to the other cell using the "tab" key, the change on the previous cell should be saved (or the PropertyChangedEvents should be triggered). Is there a way to achieve this?
Additional notes:
I've tried with UpdateSourceTrigger=LostFocus and this works fine. But once the change is saved, the current cell is not highlighted (editable). I had to click on the cell again using the mouse to get the focus.
I tried to use the SelectionCellsChanged event but this is not triggered while navigating through cells when the selectionMode is row

How to Check Selected Row In Datagridview without Checking the Cell in C#

hi everyone i'm a new coder here , i'm coding for a datagridview and have to check a row of data in the datagridview , but the problem is the datagridview must be enabled , and the selected cell will be automaticly on the first cell and the first row , if i use this code in the cells , not row , it shows an error , can someone help me to make an anti error if someone use this code when the selected item is cells and not row
if (dataGridView1.SelectedRows.Count < 0==true)
{
MessageBox.Show("Pick the data first!");
}
When i Clicked Update Which Have The Code Above
it Shows This Error
But when i Selected the Full Row and Clicked The Update Button , it Works Normally and No error
I'm not 100% sure what it is you are asking. Are you trying to make the user select full rows in your datagridview instead of individual cells? If that is the case, you'll want to set the SelectionMode property to "FullRowSelect" for your datagridview.
So my guess is that SelectionMode of your dataGridView1 is not set to FullRowSelect or RowHeaderSelect - thus you have no selected rows and dataGridView1.SelectedRows collection is always empty - that is why dataGridView1.SelectedRows[0] throws ArgumentOutOfRangeException.
Changing your dataGridView1.SelectionMode to one of the above according to desired logic should solve your problem.

How to make last row in a dataGridView on a Windows Form to be displayed all the time while still allowing the remaining rows to scroll

I have a dataGridView which has about 30 rows in it and last row of it contains sum of all the cells in that particular column. Now I would like to freeze the last row which has sum while still allowing the remaining rows to scroll.
dataGridViewPaymentsReceived.Rows[dataGridViewPaymentsReceived.Rows.Count-1].Frozen = true;
The above code freezes the entire dataGridView and doesn't allow me to scroll on it.
Can anyone suggest me a good way to keep the last row displayed all the time even when I scroll on the dataGridView?
The easiest solution would be to create a second DataGridView directly below the first. Then manually populate it with the single row that you want to be displayed every time the first datagrid binds to data.
To make it appear totally seamless, don't forget to hide the column headers in the 2nd datagrid:
dataGridView2.ColumnHeadersVisible = false;
See this answer for more info.

Get content from cell

I have UltraGrid and i need when i click on grid row to get content from specific column of that grid. For example if I click in cell of fourth column then i need to get value of first column of the same row where i clicked.
Thanks!
I am not familiar with UltraGrid, but from what I just read at:
http://devcenter.infragistics.com/Support/KnowledgeBaseArticle.Aspx?ArticleID=1753
I believe you can simply get your value like I would from a VB.NET datagridview.
dim obj as object = UltraGrid1.Selected.Rows(0)..Cells.FromKey("Name of Cell").value
This should be a close proximity of what you need.

Categories

Resources