Disable ability to select multiple cells/rows/columns
It turns out the grid control I''m working on should only allwo the user to select a single cell, a single row, or a single column. How do I disable the drag/select ability to select multipe rows/columns/cells?
SIGN IN To post a reply.
5 Replies
AD
Administrator
Syncfusion Team
November 21, 2005 09:47 PM UTC
If this is a GridControl or GridDataBoundGrid, you can handle the grid.Model.SelectionChanging event. If e.Range is something you do not want selected, then set e.Cancel = true.
MS
Michael Scott
November 21, 2005 10:22 PM UTC
OK, I''m now doing as you ask (see below), but now, if I select a single row or column, only the 1st time will the entire row/column get highlighted. How can I continue to have the selected row/column highlighted?
private void OnSelectionChanging(object sender, Syncfusion.Windows.Forms.Grid.GridSelectionChangingEventArgs e)
{
e.Cancel = false;
bool bSingleRow = (e.Range.Top == e.Range.Bottom);
bool bSingleCol = (e.Range.Left == e.Range.Right);
bool bSingleCell = bSingleRow && bSingleCol;
switch(e.Range.RangeType)
{
case GridRangeInfoType.Cells: if (!bSingleCell) e.Cancel = true; break;
case GridRangeInfoType.Cols: if (!bSingleCol) e.Cancel = true; break;
case GridRangeInfoType.Rows: if (!bSingleRow) e.Cancel = true; break;
case GridRangeInfoType.Table: e.Cancel = true; break;
default: e.Cancel = true; break;
}
}
AD
Administrator
Syncfusion Team
November 21, 2005 11:13 PM UTC
Try this code to see if it gives you what you want.
private void Model_SelectionChanging(object sender, GridSelectionChangingEventArgs e)
{
if(e.Range.RangeType == GridRangeInfoType.Rows && e.Range.Height > 1)
{
e.Cancel = true;
}
else if(e.Range.RangeType == GridRangeInfoType.Cols && e.Range.Width > 1)
{
e.Cancel = true;
}
else if(e.Range.RangeType == GridRangeInfoType.Cells
&& (e.Range.Height > 1 || e.Range.Width > 1))
{
e.Cancel = true;
}
if(this.gridControl1.Selections.Count > 1)
this.gridControl1.Selections.Clear();
}
MS
Michael Scott
November 22, 2005 12:01 AM UTC
No, it doesn''t. If I click on row 2, the row turns blue. If I then click on row 7, row 2 is still blue (selected), but row 7 isn''t.
Only that 1st selection highlights.
AD
Administrator
Syncfusion Team
November 22, 2005 12:15 AM UTC
Using version 3.3, this sample allows me to click the header of row 2 and then click the header of row 7 only leaving row 7 selected. Does it work that way for you?
http://www.syncfusion.com/Support/user/uploads/GC_Selections_cc52df28.zip
SIGN IN To post a reply.
- 5 Replies
- 2 Participants
-
MS Michael Scott
- Nov 21, 2005 08:51 PM UTC
- Nov 22, 2005 12:15 AM UTC