C# - Remember DataGridView Settings When Rebinding DataSource?
Nov 15, 2010
I have a read only DGV on a tab of my application. I let the users sort by column and reorder columns and select a row. In another part of the application you can edit the data that is in this dgv so when I go back to the tab with the dgv I'd like to refresh the data but keep the user's settings such as column order, sort order, and row selection. Right now I'm just setting the dgv to the new list of items and it resets all of these settings. Is there anyway to persist these after I rebind the data?
How can i get my program to remember settings?I have made it so that they click on a register button, if they enter the correct registration code, it will unlock these features. How can i make it so it remembers that the key has been inserted, so when the user next uses the program, they dont have to re enter the key. I think it has something to do with ini files, but im not sure how i can implement it.Here is the
Private Sub Register_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Register.Click If UserID.Text * (KeyID.Text / 2654) > "2234047144494" And UserID.Text * (KeyID.Text / 994) < "213725721516" Then MsgBox("The User ID and Key are Correct! Registration is now complete. You now have full access to EVERY feature.
How do you make a program remember settings. For example, first it prompts you for your name, then when you close out of it and start it again, it will display your name?
I have several problems with rows in a DataGridView. Background information: The DataGridView (DataGridViewCalib) is in one TabPage of a TabControl, some columns of the DataGridView are automatically DataGridViewCheckBoxColumn as the DataSource have some colums which are Boolean. This is a Windows Form written in VB.Net with Visual Studio 2008. The user loads an input data file.
The problems:
1) At first arrival in the TabPage, ShowDataGridViewCalib (code below) is called. All rows are then shown in the DataGridView, despite the code saying that some rows should not be visible. Breakpoints in the code show that the code do arrive at the Rows.Visible = False events. Despite all rows beeing shown a Watch in the debugger shows that:
[code]...
There are two alternative ways of handling the rows in the code. The first attempt (commented away here) is probably the "nicest".
We have an ItemCommand that makes a DataGridItem invisible. This is breaking the alternating color scheme that we have applied. Is there a way to re-apply the style without rebinding or manually setting each DataGridItem's BackColor property?
My application must display some data in Datagridview (status of COM ports communication) and i Used .mdb databases before for faster search and Datagridview update. How i understand Datagridview is importing data from DataTable and data in DataTable is imported from .mdb file, so i decided to make shortcut - stop to using .mdb file (data must be erased every time application start and it is useless make .mdb file and erase it every time, becouse it is increasing even when drop is used) and using only DataTable..
I want to row in Datagridview change it color to red when it's Collumn(6).text countains %error% string..
When Error in COM port is starting, i can fast find row in DataTable for that port and write information that Error accured for that port and DataGridview automatically updates:
Dim RRow as () DataRow RRow = ds.Select("Port = 'COM3') RRow(0).Item(6) = "Error Opening COM3"
When I try to change the datasource of my DataGridView, I am loosing the order of the columns and their type(checkboxes,comboboxes) that i specified on designtime! It's like changing the datasource is generating again the datagridview, why ? and How can I change the datasource without losing these information ? on form load i do something like
Private Sub frmGrid_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load Dim Path as string
I have created a Datagridview by dropping in from the Datasource. After I changed one column to be a Checkboxcolumn but it does not represent the values. In the table (smallint) I have 0s and -1s but it doesnt matter what I enter as True and False Value in the column it just shows that the box is checked.
but the change does not get committed to the DataSource (or at least not immediately), so when I search through it I get wrong results. I can't call AcceptChanges as that will refresh the grid and cause unwanted side effects... What can I do about this? Is there such a thing as an 'AutoCommit' property on a DataGridView?
my question is, is there a way to filter records in the dataset and use that records to fill in the datagridview? for example, a datatable (with 3 columns: ID, StudentName, Gender) is filled with list of students. i have two datagrids in the form namely DatagridView1 and Datagridview2. DatagridView1 is where the the list of student where Gender is equal to M and DatagridView2 is where the the list of student where Gender is equal to F.in my current solution, i am using a loop.
I simply cannot understand or see when a DGV's DataSource (a DataTable in my case) get's updated when a new row has been added to the DGV by the user. I have looked at row counts in the DataTable at every possible event and cannot "get" the correct number of rows (which I ultimately need to "get" the GetChanges(DataRowState.Added) of the DataTable.So, here's what I've done.1. The DGV is populated on the FormLoad event. It includes a ComboBoxColumn which has it's own datasource. All fine.Now, let's say initially there is 1 single row in the DGV. There is also and "empty" row at the bottom of the DGV, all cell values are empty.if the user Clicks the ComboBoxCol and chooses an item, then this actually creates a NEW friggin' row, RIGHT?!No. Not exactly. At least NOT in the DataTable (The DGV's datasource).I attempted to "check". Looked at the editingComboBox_SelectionChangeCommitted event:
Private Sub editingComboBox_SelectionChangeCommitted(ByVal sender As Object, ByVal e As System.EventArgs) _ Handles editingComboBox.SelectionChangeCommitted Dim rct As Integer = ImprovementsEntity.improvementTable.Rows.Count
I have an app that has a DataGridView with a few buttons. My intent is to have the DataGridView populate with the data associated with the button clicked. So if you click the States button it'll fill the DataGridView with the DataSet I have created with a link to a SQL table with a list of States.
Target: Bind dynamic datasource in a cell of a Windows.Forms.DataGridView depending on the selection in previous column. The grid must have 7 columns. If the selection on comboboxcolumn 2 or 4 is done, the datasource of comboboxcolumns 3 and 5 mus change using a query with previous selection as parameter.
In a first try to develop this functionality i've tried to use Telerik.WinControls.UI.RadGridView control. I've created a customized celltemplate with a combobox in order to have different datasource for each cell on the same column. All worked fine but seems to be some kind of bug in RadGridView, because when the combobox is presenting the list, after selection the list continued showing, doesn't dissapears as expected.
Ok, after several days of fight with RadGridView, I give up, and I tried to use same strategy but using Windows.Forms.DataGridView. I've created two classes one inherited from DataGridViewComboboxCell and other from ComboBoxColumn, in order to insert my own combbox or have the chance to have access directly to the combobox values. But the combobox showed is the default combobox not my own combobox.
how can I create a custom comboboxcell but using my own combo, and having access from outside to this combo?
With code above, how do I assign the value to the combobox while retrieving data from the table so that it point to the corresponding combobox item. For example, if the value of status_ID is 1 then the combobox should show "completed" in the datagridview.
I have a datagridview with a datatable in a dataset as a datasource. When i add a new row in the datagridview it is automaticaly added to the to the underliyng datatable (its datasource) . However it will only be addad after i click another datagridviewrow. I would like that update to be just after i added the row or after i edit one of its cells and not only after i click a different row.
Posted this over at WinForms forum, just not much activity and thought I might get a quick response here....Not real certain if I am implementing this correctly, but I am attempting to programatically modify cell values in a DataGridView control with an underlying DataTable as it's DataSource.
I'm trying to use a datagridview as the datasource for my mail merge, but I'm having trouble getting all the data to output to the word doc. I've based the below code on the following tutorial:
This is my first time really working with DataGridViews. And for my own learning, I am trying to create a "System Information" program. I understand you can easily do simple stuff such as:
In a windows form I do have a datagridview. When a user pushes the button, the underlying datasource of the datagridview (a dataview) changes and the new content with new columns is shown. This works fine, only problem is that the header-height differs and that the datagridview does not properly display the smaller headers until I click into the first datarow of the datagridview. Simply using the .refresh()-method of the datagridview after assigning the new datasource does not seem to work.
Here is a little code-snippet showing how I assign a new datasource to the datagridview. Dim view As DataView = myDataTable.DefaultView With Me.MyDataGridView .Columns.Clear() .AutoSize = True .DataSource = view For Each col As DataGridViewColumn In Me.MyDataGridView.Columns col.ReadOnly = True Next ...
My current problem is this:I have a form and I have in it three textboxes, 1 button and 1 datagridview; I also have an acceI'm learnig now on how to create a report without a database. But In how to set the datagriview as the datasource for my report
I've got a VB2008 application that can potentially generate a table with up to 540 columns. The table is then used as the DataSource for a DataGridView. With column counts in the hundreds the processing time can by over a minute. With all this in single threaded Form code the UI locks up until the DataGridView is loaded. I've taken time stamps of the process to find out where the majority of time is spent.
I'm learning some more VB in my spare time, and I'm making a simple customer database that uses SQLCE. I've got the datasource set up and all that, but for some reason when I hit accept on the form, nothing happens?
Brief : I have code which works if I don't dispose of the BindingSource after it has been assigned to DataGridView.DataSource but breaks if I do dispose it - why? Do I need to worry about disposing this?
[Code]...
So, what is going on here? When I set DataGridView1.DataSource = Bds does it just do this as a reference? How does Bds get disposed once the procedure exits? Does garbage collection pick it up if I assign something else to DataGridView1.DataSource? Do I need to worry about this?
I have a bound datagridview which populates from the database using parameters. I've added a combobox column through the datagridview properties. How do I access this combobox column datasource?
Let's say that I have a DataGridView(myDGV) which I populate as follows:
'... Dim strSQL as String = "SELECT col1,col2,col3 FROM myTable" '.... myda.Fill(myDtb) myDGV.DataSource = myDtb. 'The above code fills the DGV with data from the underlying query 'of the DataTable.
'Supposing that I want to add an unbound Column to the end of the DGV which appears together with the data returned by the query, is it possibe?
which is supposed to get all the data from my table and set it as the datasource of a DataGridView. You can see where I put in two msgbox's to view how many columns are in the DGV before and after the "update". The first count gives me 22, which is the correct number. After the .DataSource and .DataMember lines are ran, the count jumps to 41 and I have no clue why. All I want to do is clear a dataset, fill it with the new data and set it as the data source of a datagridview. It appears the info is being saved to the table correctly too.
I had a DataGridView that was bound to a Table in my typed DataSet. I recentyl added a new column to the table in the database and updated the table in the DataSet accordingly.Now, when I go to the DataGridView to update it, the new column does not appear under the "Databound column" list. I tried setting the data source to "None", then reselecting it. Still, it does not show the new column. I then deleted the DataGridView and re-added it to the form. Again, same result. However, when I select the data source, then click "Preview Data", it show the added column.