Hello, This is the scenario.
I've got a grid on a form. The grid has three columns. One column will allow the user to do a cell copy using the right mouse click. Other columns just do a row select on mouseclick.
If I load the form without binding the grid to a datasource in the showdialog event, but fill the grid from a button click later after the form is visible, I get the desired behavior listed above. If I fill the grid during the showdialog, the grid will either allow me to select each cell -or- in some cases it will do a row select. I've tried all sorts of settings to get this to work until I realized it only worked if I didn't bind the grid on the form load. I can recreate these scenarios repeatedly.
This one is driving me nuts. Any advice would be appreciated. Thank you.
It sounds to me like your design-time settings are getting lost when you bind the grid if the grid is not visible at the time. I've seen similar behavior with other controls because the BindingManager doesn't actually bind a control until it's handle is created and controls on inactive tabs do not get created until they are shown for the first time.
In that case the easiest thing to do would probably be to set up the grid's layout at run-time using the InitializeLayout event. Or just save the layout at design-time (using the Layout Wizard). You could save it to a file or to the grid's Layouts collection. The load it at run-time.
Thank you for your response Mike. The properties are set at design time. There is no event set to handle the right mouse click. When I enter the cell, the grid is popping the cut/copy/paste menu.
Here are some properties from the designer.
UltraGridColumn21.CellActivation = Infragistics.Win.UltraWinGrid.Activation.ActivateOnly UltraGridColumn21.CellClickAction = Infragistics.Win.UltraWinGrid.CellClickAction.EditAndSelectText
Me.UGComments.DisplayLayout.Override.AllowAddNew = Infragistics.Win.UltraWinGrid.AllowAddNew.No Me.UGComments.DisplayLayout.Override.AllowDelete = Infragistics.Win.DefaultableBoolean.[False] Me.UGComments.DisplayLayout.Override.AllowUpdate = Infragistics.Win.DefaultableBoolean.[False]
Me.UGComments.DisplayLayout.Override.CellClickAction = Infragistics.Win.UltraWinGrid.CellClickAction.RowSelect Me.UGComments.DisplayLayout.Override.RowSelectorAppearance = Appearance31 Me.UGComments.DisplayLayout.Override.RowSelectors = Infragistics.Win.DefaultableBoolean.[True] Me.UGComments.DisplayLayout.Override.SelectTypeCell = Infragistics.Win.UltraWinGrid.SelectType.None Me.UGComments.DisplayLayout.Override.SelectTypeCol = Infragistics.Win.UltraWinGrid.SelectType.None Me.UGComments.DisplayLayout.Override.SelectTypeRow = Infragistics.Win.UltraWinGrid.SelectType.[Single].
Here is another thing that might help figure this out. If the grid is on the form and visible when the form displays, it works perfectly. If the grid is on a tab page that is not initially visible when the form displays, it doesn't seem to care about the design-time settings. If I go to the tab page where the grid lives so the grid is displayed, then bind the grid to the datasource, it will work correctly. It's crazy...but I can repeat this behavior consistently.
What properties are you using to acheive the behavior you want? I assume CellClickAction is one of them. What event are you handling to do the "cell copy on right mouse click?"
Are you setting properties of the grid at design-time? Or are you doing it at run-time?