C#在DataGridView當滑鼠移到某行時,該行改變顏色
阿新 • • 發佈:2019-02-12
在datagridview當滑鼠移到某行時,該行改變顏色 Winform: DataGridView屬性中有個SelectMode之類的屬性,可以設定是選擇單元格還是選擇行。 在DataGirdView屬性中還有DefaultCellStyle之類的屬性,可以設定選中時的背景色、字型顏色等。
private
void
dataGridView1_CellMouseEnter(
object
sender, DataGridViewCellEventArgs e)
//滑鼠移動到某行時更改背景色 {
if
(e.RowIndex >= 0) {
dataGridView1.Rows[e.RowIndex].DefaultCellStyle.BackColor = Color.LightBlue; } }
private
void
dataGridView1_CellMouseLeave(
object
sender, DataGridViewCellEventArgs e)
//滑鼠移開時還原背景色 {
if
(e.RowIndex >= 0) {
dataGridView1.Rows[e.RowIndex].DefaultCellStyle.BackColor = Color.White; } }
/// <summary>
/// 滑鼠移動事件處理 /// </summary>
/// <param name= "sender "> </param> /// <param name= "e "> </param>
private
void
dataGridView1_MouseMove(
object
sender, MouseEventArgs e) {
DataGridView.HitTestInfo hti =
this
.dataGridView1.HitTest(e.X, e.Y);
//如果座標在單元格內
if
(hti.Type == DataGridViewHitTestType.Cell) {
//取消選擇所有的選定單元格
this
.dataGridView1.ClearSelection();
// 設定控制元件內所有行的顏色
for
(
int
i = 0; i <
this
.dataGridView1.Rows.Count; i++) {
this
.dataGridView1.Rows[i].DefaultCellStyle.BackColor = Color.White;
if
(i % 2 == 0) {
this
.dataGridView1.Rows[i].DefaultCellStyle.BackColor = Color.FromArgb(224, 224, 224); }
else
{
this
.dataGridView1.Rows[i].DefaultCellStyle.BackColor = Color.FromArgb(192, 192, 192); }
if
(
this
.dataGridView1.RowCount > hti.RowIndex) {
//設定控制元件內滑鼠移動到的顏色
this
.dataGridView1.Rows[hti.RowIndex].DefaultCellStyle.BackColor = Color.FromArgb(255, 255, 192) } } } }
private
void
Form1_Load(
object
sender, EventArgs e) {
//設定奇偶行顏色
dataGridView1.RowsDefaultCellStyle.BackColor = Color.White;
dataGridView1.AlternatingRowsDefaultCellStyle.BackColor = Color.Beige;
//設定奇偶行選中的顏色
dataGridView1.DefaultCellStyle.SelectionBackColor = Color.White
dataGridView1.AlternatingRowsDefaultCellStyle.SelectionBackColor = Color.Beige; }
asp.net
protected
void
GridView1_RowDataBound(
object
sender, GridViewRowEventArgs e) {
int
i;
//執行迴圈,保證每條資料都可以更新 for (i = 0; i < GridView1.Rows.Count; i++) {
//首先判斷是否是資料行
if
(e.Row.RowType == DataControlRowType.DataRow) {
//當滑鼠停留時更改背景色
e.Row.Attributes.Add(
"onmouseover"
,
"c=this.style.backgroundColor;this.style.backgroundColor='#00A9FF'"
);
//當滑鼠移開時還原背景色
e.Row.Attributes.Add(
"onmouseout"
,
"this.style.backgroundColor=c"
); } } }