我正在用C#编写一个表单应用程序,我有一个DataGridView,它显示来自SQL服务器的数据。
这些数据包含一个名为Remove
的列,此列的所有行都包含字符串删除。现在我想通过更改背景颜色和使用手形光标使此列的所有单元格看起来像一个按钮。
我的问题是,我不能仅在此列上使用手形光标。我想要的是,当鼠标位于此Remove
列的任何行上时,将鼠标指针更改为手形光标,而不是其他任何位置。
for(int i=0; i<myDataGridView.RowCount; i++){
myDataGridView.Cursor = Cursors.Hand;
}
不能做我想要的,因为鼠标指针在DataGridView上的任何地方变成手形光标,而不是只在Remove
列上。
我试过像
for(int i=0; i<myDataGridView.RowCount; i++){
myDataGridView.Columns["Remove"].Cursor = Cursors.Hand;
}
但这会出错:
System.Windows.Forms.DataGridViewColumn不包含“Cursor”的定义。
有没有什么好方法可以达到这个目的?谢谢。
答案 0 :(得分:4)
尝试点击DataGridView的OnCellMouseEnter事件。触发事件后,您可以确定单元格所在的列,并根据需要更改光标。
答案 1 :(得分:0)
使用此代码,对我有用
private void dataGridView1_CellMouseEnter(object sender, DataGridViewCellEventArgs e)
{
string colname = dataGridView1.Columns[e.ColumnIndex].Name;
if(colname!="btnEdit" && colname!= "btnDelete")
{
dataGridView1.Cursor = Cursors.Default;
}
else
{
dataGridView1.Cursor = Cursors.Hand;
}
}