Hi,
VS2005
WinControls 2008Q3 1204
I get a null pointer exception when right clicking on a grid outside the rows.
I think I found the bug, if I set the selectionmode to cellselect it works fine.
if (this.GridControl.MultiSelect && this.GridControl.SelectionMode == GridViewSelectionMode.FullRowSelect)
{
if (!row.IsSelected)
{
this.GridControl.SelectedRows.Clear();
}
}
01:05:54:735 10 Exception .... Object reference not set to an instance of an object.
at Telerik.WinControls.UI.BaseGridBehavior.OnMouseDownRight(MouseEventArgs e)
at Telerik.WinControls.UI.BaseGridBehavior.OnMouseDown(MouseEventArgs e)
at Telerik.WinControls.UI.RadGridView.OnMouseDown(MouseEventArgs e)
at System.Windows.Forms.Control.WmMouseDown(Message& m, MouseButtons button, Int32 clicks)
at System.Windows.Forms.Control.WndProc(Message& m)
at System.Windows.Forms.ScrollableControl.WndProc(Message& m)
at Telerik.WinControls.RadControl.WndProc(Message& m)
at System.Windows.Forms.Control.ControlNativeWindow.OnMessage(Message& m)
at System.Windows.Forms.Control.ControlNativeWindow.WndProc(Message& m)
at System.Windows.Forms.NativeWindow.DebuggableCallback(IntPtr hWnd, Int32 msg, IntPtr wparam, IntPtr lparam)
at System.Windows.Forms.UnsafeNativeMethods.DispatchMessageW(MSG& msg)
at System.Windows.Forms.Application.ComponentManager.System.Windows.Forms.UnsafeNativeMethods.IMsoComponentManager.FPushMessageLoop(Int32 dwComponentID, Int32 reason, Int32 pvLoopData)
at System.Windows.Forms.Application.ThreadContext.RunMessageLoopInner(Int32 reason, ApplicationContext context)
at System.Windows.Forms.Application.ThreadContext.RunMessageLoop(Int32 reason, ApplicationContext context)
at System.Windows.Forms.Form.ShowDialog(IWin32Window owner)
My grid:
//
// radGridView
//
this.radGridView.BackColor = System.Drawing.Color.Transparent;
this.radGridView.Cursor = System.Windows.Forms.Cursors.Default;
this.radGridView.Dock = System.Windows.Forms.DockStyle.Fill;
this.radGridView.Font = new System.Drawing.Font("Microsoft Sans Serif", 8.25F);
this.radGridView.ForeColor = System.Drawing.SystemColors.ControlText;
this.radGridView.ImeMode = System.Windows.Forms.ImeMode.NoControl;
this.radGridView.Location = new System.Drawing.Point(0, 0);
this.radGridView.Margin = new System.Windows.Forms.Padding(0);
//
//
//
this.radGridView.MasterGridViewTemplate.AllowAddNewRow = false;
this.radGridView.MasterGridViewTemplate.AllowColumnChooser = false;
this.radGridView.MasterGridViewTemplate.AllowColumnReorder = false;
this.radGridView.MasterGridViewTemplate.AllowDragToGroup = false;
this.radGridView.MasterGridViewTemplate.AllowRowResize = false;
this.radGridView.MasterGridViewTemplate.Caption = null;
gridViewTextBoxColumn1.FieldAlias = "FileName";
gridViewTextBoxColumn1.FieldName = "FileName";
gridViewTextBoxColumn1.HeaderText = "Name";
gridViewTextBoxColumn1.HeaderTextAlignment = System.Drawing.ContentAlignment.MiddleLeft;
gridViewTextBoxColumn1.UniqueName = "FileName";
gridViewTextBoxColumn1.Width = 160;
gridViewDateTimeColumn1.DataType = typeof(System.DateTime);
gridViewDateTimeColumn1.FieldAlias = "DateCreated";
gridViewDateTimeColumn1.FieldName = "DateCreated";
gridViewDateTimeColumn1.HeaderText = "Date uploaded";
gridViewDateTimeColumn1.HeaderTextAlignment = System.Drawing.ContentAlignment.MiddleLeft;
gridViewDateTimeColumn1.SortOrder = Telerik.WinControls.UI.RadSortOrder.Ascending;
gridViewDateTimeColumn1.UniqueName = "DateCreated";
gridViewDateTimeColumn1.Width = 120;
gridViewTextBoxColumn2.FieldAlias = "FileType";
gridViewTextBoxColumn2.FieldName = "FileType";
gridViewTextBoxColumn2.HeaderText = "Type";
gridViewTextBoxColumn2.HeaderTextAlignment = System.Drawing.ContentAlignment.MiddleLeft;
gridViewTextBoxColumn2.UniqueName = "FileType";
gridViewTextBoxColumn2.Width = 110;
gridViewTextBoxColumn3.FieldAlias = "FileSize";
gridViewTextBoxColumn3.FieldName = "FileSize";
gridViewTextBoxColumn3.HeaderText = "Size";
gridViewTextBoxColumn3.HeaderTextAlignment = System.Drawing.ContentAlignment.MiddleLeft;
gridViewTextBoxColumn3.UniqueName = "FileSize";
gridViewTextBoxColumn3.Width = 100;
this.radGridView.MasterGridViewTemplate.Columns.Add(gridViewTextBoxColumn1);
this.radGridView.MasterGridViewTemplate.Columns.Add(gridViewDateTimeColumn1);
this.radGridView.MasterGridViewTemplate.Columns.Add(gridViewTextBoxColumn2);
this.radGridView.MasterGridViewTemplate.Columns.Add(gridViewTextBoxColumn3);
this.radGridView.MasterGridViewTemplate.EnableGrouping = false;
this.radGridView.MasterGridViewTemplate.ShowRowHeaderColumn = false;
this.radGridView.MultiSelect = true;
this.radGridView.Name = "radGridView";
this.radGridView.ReadOnly = true;
this.radGridView.RightToLeft = System.Windows.Forms.RightToLeft.No;
this.radGridView.ShowGroupPanel = false;
this.radGridView.Size = new System.Drawing.Size(443, 401);
this.radGridView.TabIndex = 0;
this.radGridView.Text = "radGridView";
this.radGridView.ThemeName = "Vista";
((Telerik.WinControls.UI.GridTableElement)(this.radGridView.GetChildAt(0))).CellSpacing = -1;
((Telerik.WinControls.UI.GridTableElement)(this.radGridView.GetChildAt(0))).DrawBorder = false;
((Telerik.WinControls.UI.GridTableElement)(this.radGridView.GetChildAt(0))).BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(255)))), ((int)(((byte)(255)))), ((int)(((byte)(255)))));
((Telerik.WinControls.UI.GridTableElement)(this.radGridView.GetChildAt(0))).DrawFill = true;
((Telerik.WinControls.UI.GridTableBodyElement)(this.radGridView.GetChildAt(0).GetChildAt(1))).DrawBorder = true;
((Telerik.WinControls.UI.GridTableBodyElement)(this.radGridView.GetChildAt(0).GetChildAt(1))).BackColor = System.Drawing.Color.White;
((Telerik.WinControls.UI.GridTableBodyElement)(this.radGridView.GetChildAt(0).GetChildAt(1))).DrawFill = false;
Question. Can I have the drop down show even if there are no rows in the grid? (add row?)
thanks
-j