private void DataGrid1_ItemCommand(object source, System.Web.UI.WebControls.DataGridCommandEventArgs e)
{
  if(e.Item.ItemIndex>=0)
  {
    DataGrid1.Items[e.Item.ItemIndex].Cells[0].BackColor=你想要的颜色;
  }
}

解决方案 »

  1.   

    我有一套办法:(不过此方法将使DataGrid无法编辑)
    1 使DataGrid.Enable = false;
    2 响应DataGrid所在容器的MouseDown事件,因为DataGrid已经Disable,所以发生在他身上的事件会自动传递到父容器上。
    3 把父容器上MouseDown事件中的鼠标坐标减去DataGrid的坐标。
    3 所取得的差值如果为正,则用此差值调用DataGrid.HitTest(...);
    4 HitTest如果返回-1,则说明该坐标处没有单元格,如果返回一个大于零的整数,则用此数调用DataGrid.Select(int row);,如果你需要还可以通过DataGrid.IsSelect(int row)来判定某行是否被选中,这样就能通过UnSelect来反选,如果要实现双击,那么在MouseDown中判断e.Clicks == 2,就行了
      

  2.   

    DataGrid.Enable = false
    也可以接受MouseDown事件,
      

  3.   

    F:\My Documents\Visual Studio Projects\test2\Form1.cs(163): “System.Windows.Forms.DataGrid”并不包含对“Items”的定义
    怎么会有错?
      

  4.   

    我用上面hbxtx的方法,但出现以下的错误:
    类型或命名空间名称“Web”在类或命名空间“System”中不存在(是否缺少程序集引用?)请问这是为什么?
    谁能解决我这个问题,一定马上给分!!!(在线等候)谢了
      

  5.   

    hbxtx的方法适合web页面上的DataGrid,不适合客户端的dataGrid,你可以尝试修改选过的行的每列的显示控件的颜色。