winform 中 datagrid 单击选中整行 而不是单元格

时间:2022-05-07 19:28:37
winform 中 datagrid 单击选中整行 而不是单元格

怎么做啊

现在 一点就是选中单元格 我要选中整行。

33 个解决方案

#1


private void dataGrid1_CurrentCellChanged(object sender, System.EventArgs e)
{
if (this.tempTable.Rows.Count > 0)
{
int currentRowNumber = this.dataGrid1.CurrentCell.RowNumber;
if (currentRowNumber >= 0 && currentRowNumber < fbackAMend.Count)
fbackAMend.Position = currentRowNumber;
}
}

#2


点左边行标题!

#3


你只需要判断该单元格所在行,作下一步处理就可以了!

#4


private void dataGrid1_CurrentCellChanged(object sender, System.EventArgs e)
{
if (this.tempTable.Rows.Count > 0)
{
int currentRowNumber = this.dataGrid1.CurrentCell.RowNumber;
if (currentRowNumber >= 0 && currentRowNumber < fbackAMend.Count)
fbackAMend.Position = currentRowNumber;
}
}
可不可以解释下 
fbackAMend 是什么。。

#5


你只需要判断该单元格所在行,作下一步处理就可以了!

关键 就是下一步怎么处理啊。

#6


修改datagrid的SelectionMode属性为FullRowSelect

#7


修改datagrid的SelectionMode属性为FullRowSelect

#8


我啷个没有找到这个属性也?有不有哟?

#9


private void dgDb_ItemCreated(object sender, DataGridItemEventArgs e)
{
      e.Item.Attributes.Add("onmouseover", "currentcolor=this.style.backgroundColor;this.style.backgroundColor='#6699CC'");
     e.Item.Attributes.Add("onmouseout", "this.style.backgroundColor=currentcolor");
}
改成  onclick 就可以了

#10


SelectionMode是VS2005中DataGridView的属性

#11


tcx1986() 你这个是WebForm的
winform2003中,要改DataGrid的行选种模式,只能重绘了

#12


mark

#13


private void dgGrid_CurrentCellChanged(object sender, System.EventArgs e)
{
this.dg_dgGrid.Select(this.dg_dgGrid.CurrentRowIndex);
                   }

#14


private void dgGrid_CurrentCellChanged(object sender, System.EventArgs e)
{
this.dgGrid.Select(this.dgGrid.CurrentRowIndex);
                   }

#15


狂翻前半个月的帖子肯定有,呵呵

#16


还没结贴
我来说吧,但要给分呀!
楼上几位说的不如我这个简单——哈哈!
pivate void dataGrid1_MouseUp(object sender, System.Windows.Forms.MouseEventArgs e)
{
Point pt = new Point(e.X,e.Y);
DataGrid.HitTestInfo hit = dataGrid1.HitTest(pt);
if(hit.Type == DataGrid.HitTestType.Cell) 
{
dataGrid1.Select(hit.Row); 
}
}

#17


回答楼主
private CurrencyManager fbackAMend;

#18


//--------------------初始化窗体,读入数据------------------
private void cFbackEditA_Load(object sender, System.EventArgs e)
{
this.sqlDataAdapter1.Fill(tempTable);
this.dataGrid1.DataSource = tempTable.DefaultView;
DataGridStateControl();
DataBindingsFunction();
fbackAMend = (CurrencyManager) BindingContext[tempTable];
}

#19


重写类
DataGridTableStyle

#20


重写的确可以 但是程序都做好了 好麻烦啊。

 TO:天天在线 不行啊 N 早就用过

 TO:一路狂奔 不行啊 也用过

 TO:可乐 明天去试试 

 明天结贴 现在在家 不好意思。

#21


还没结贴
我来说吧,但要给分呀!
楼上几位说的不如我这个简单——哈哈!
pivate void dataGrid1_MouseUp(object sender, System.Windows.Forms.MouseEventArgs e)
{
Point pt = new Point(e.X,e.Y);
DataGrid.HitTestInfo hit = dataGrid1.HitTest(pt);
if(hit.Type == DataGrid.HitTestType.Cell) 
{
dataGrid1.Select(hit.Row); 
}
}

编译能过吗

我要的是 选中它 且单元格不接受焦点。

#22


可乐  使用未赋值的变 量。

#23


up

#24




呵呵,看来此分非我莫属啦。
我用的是vs2005
//选择某行
 datagridview1.Rows[3].Selected = true;



#25


这么问题应该简单的吧,早就解决了。怎么讨论到现在还没有结果。
不过偶也不会,偶也在看怎么办,以前看过其它帖子的,没记住

#26


private void dataGrid1_MouseUp(object sender, System.Windows.Forms.MouseEventArgs e) 
 

 
     System.Drawing.Point pt = new Point(e.X, e.Y); 
 
     DataGrid.HitTestInfo hti = dataGrid1.HitTest(pt); 
 
     if(hti.Type == DataGrid.HitTestType.Cell) 
 
     { 
 
          dataGrid1.CurrentCell = new DataGridCell(hti.Row, hti.Column); 
 
          dataGrid1.Select(hti.Row); 
 
     } 
 

 

#27


http://www.syncfusion.com/FAQ/WindowsForms/FAQ_c44c.aspx#q689q

#28


this.dataGrid1.CurrentRowIndex=this.dataGrid1.CurrentCell.RowNumber;

#29


this.dataGrid1.CurrentRowIndex=this.dataGrid1.CurrentCell.RowNumber;

这样 还是触发不了 datagrid 的双击事件  事件被 cell接收了。

#30


天天在线的解应该对阿

#31





this.dg_dgGrid.Select(this.dg_dgGrid.CurrentRowIndex);

#32


this.dg_dgGrid.Select(this.dg_dgGrid.CurrentRowIndex);
没用 是点击进单元格了

#33


private void dataGrid1_CurrentCellChanged(object sender, System.EventArgs e)
{
    dataGrid1.Select(dataGrid1.CurrentRowIndex) ;
}

#1


private void dataGrid1_CurrentCellChanged(object sender, System.EventArgs e)
{
if (this.tempTable.Rows.Count > 0)
{
int currentRowNumber = this.dataGrid1.CurrentCell.RowNumber;
if (currentRowNumber >= 0 && currentRowNumber < fbackAMend.Count)
fbackAMend.Position = currentRowNumber;
}
}

#2


点左边行标题!

#3


你只需要判断该单元格所在行,作下一步处理就可以了!

#4


private void dataGrid1_CurrentCellChanged(object sender, System.EventArgs e)
{
if (this.tempTable.Rows.Count > 0)
{
int currentRowNumber = this.dataGrid1.CurrentCell.RowNumber;
if (currentRowNumber >= 0 && currentRowNumber < fbackAMend.Count)
fbackAMend.Position = currentRowNumber;
}
}
可不可以解释下 
fbackAMend 是什么。。

#5


你只需要判断该单元格所在行,作下一步处理就可以了!

关键 就是下一步怎么处理啊。

#6


修改datagrid的SelectionMode属性为FullRowSelect

#7


修改datagrid的SelectionMode属性为FullRowSelect

#8


我啷个没有找到这个属性也?有不有哟?

#9


private void dgDb_ItemCreated(object sender, DataGridItemEventArgs e)
{
      e.Item.Attributes.Add("onmouseover", "currentcolor=this.style.backgroundColor;this.style.backgroundColor='#6699CC'");
     e.Item.Attributes.Add("onmouseout", "this.style.backgroundColor=currentcolor");
}
改成  onclick 就可以了

#10


SelectionMode是VS2005中DataGridView的属性

#11


tcx1986() 你这个是WebForm的
winform2003中,要改DataGrid的行选种模式,只能重绘了

#12


mark

#13


private void dgGrid_CurrentCellChanged(object sender, System.EventArgs e)
{
this.dg_dgGrid.Select(this.dg_dgGrid.CurrentRowIndex);
                   }

#14


private void dgGrid_CurrentCellChanged(object sender, System.EventArgs e)
{
this.dgGrid.Select(this.dgGrid.CurrentRowIndex);
                   }

#15


狂翻前半个月的帖子肯定有,呵呵

#16


还没结贴
我来说吧,但要给分呀!
楼上几位说的不如我这个简单——哈哈!
pivate void dataGrid1_MouseUp(object sender, System.Windows.Forms.MouseEventArgs e)
{
Point pt = new Point(e.X,e.Y);
DataGrid.HitTestInfo hit = dataGrid1.HitTest(pt);
if(hit.Type == DataGrid.HitTestType.Cell) 
{
dataGrid1.Select(hit.Row); 
}
}

#17


回答楼主
private CurrencyManager fbackAMend;

#18


//--------------------初始化窗体,读入数据------------------
private void cFbackEditA_Load(object sender, System.EventArgs e)
{
this.sqlDataAdapter1.Fill(tempTable);
this.dataGrid1.DataSource = tempTable.DefaultView;
DataGridStateControl();
DataBindingsFunction();
fbackAMend = (CurrencyManager) BindingContext[tempTable];
}

#19


重写类
DataGridTableStyle

#20


重写的确可以 但是程序都做好了 好麻烦啊。

 TO:天天在线 不行啊 N 早就用过

 TO:一路狂奔 不行啊 也用过

 TO:可乐 明天去试试 

 明天结贴 现在在家 不好意思。

#21


还没结贴
我来说吧,但要给分呀!
楼上几位说的不如我这个简单——哈哈!
pivate void dataGrid1_MouseUp(object sender, System.Windows.Forms.MouseEventArgs e)
{
Point pt = new Point(e.X,e.Y);
DataGrid.HitTestInfo hit = dataGrid1.HitTest(pt);
if(hit.Type == DataGrid.HitTestType.Cell) 
{
dataGrid1.Select(hit.Row); 
}
}

编译能过吗

我要的是 选中它 且单元格不接受焦点。

#22


可乐  使用未赋值的变 量。

#23


up

#24




呵呵,看来此分非我莫属啦。
我用的是vs2005
//选择某行
 datagridview1.Rows[3].Selected = true;



#25


这么问题应该简单的吧,早就解决了。怎么讨论到现在还没有结果。
不过偶也不会,偶也在看怎么办,以前看过其它帖子的,没记住

#26


private void dataGrid1_MouseUp(object sender, System.Windows.Forms.MouseEventArgs e) 
 

 
     System.Drawing.Point pt = new Point(e.X, e.Y); 
 
     DataGrid.HitTestInfo hti = dataGrid1.HitTest(pt); 
 
     if(hti.Type == DataGrid.HitTestType.Cell) 
 
     { 
 
          dataGrid1.CurrentCell = new DataGridCell(hti.Row, hti.Column); 
 
          dataGrid1.Select(hti.Row); 
 
     } 
 

 

#27


http://www.syncfusion.com/FAQ/WindowsForms/FAQ_c44c.aspx#q689q

#28


this.dataGrid1.CurrentRowIndex=this.dataGrid1.CurrentCell.RowNumber;

#29


this.dataGrid1.CurrentRowIndex=this.dataGrid1.CurrentCell.RowNumber;

这样 还是触发不了 datagrid 的双击事件  事件被 cell接收了。

#30


天天在线的解应该对阿

#31





this.dg_dgGrid.Select(this.dg_dgGrid.CurrentRowIndex);

#32


this.dg_dgGrid.Select(this.dg_dgGrid.CurrentRowIndex);
没用 是点击进单元格了

#33


private void dataGrid1_CurrentCellChanged(object sender, System.EventArgs e)
{
    dataGrid1.Select(dataGrid1.CurrentRowIndex) ;
}