不論任何語言,Grid 奇偶數列變色,好像是 Grid 變色的入門考題了,來練習一下
namespace OddEvenRowBG
{
public partial class OddEvenRowBG : Form
{
public OddEvenRowBG()
{
InitializeComponent();
}
private void OddEvenRowBG_Load(object sender, EventArgs e)
{
// 建立 DataGridView 資料來源
DataTable dt = new DataTable();
dt.Columns.Add("ColEmpNO", typeof(int));
dt.Columns.Add("ColEmpName", typeof(string));
dt.Columns.Add("ColHireDate", typeof(DateTime));
dt.Rows.Add(1, "趙一", new DateTime(1963, 7, 7));
dt.Rows.Add(2, "洪二", new DateTime(1965, 5, 10));
dt.Rows.Add(3, "張三", new DateTime(1981, 12, 11));
dt.Rows.Add(4, "李四", new DateTime(1980, 1, 9));
dt.Rows.Add(5, "王五", new DateTime(1973, 9, 9));
if (dt.PrimaryKey.Length == 0) dt.Constraints.Add("PK", dt.Columns["colEmpNO"], true);
dgvData.DataSource = dt;
dgvData.AllowUserToAddRows = false;
// 下列方法二擇一
// 方法一:利用 DataGridView 本身屬性來完成
dgvData.DefaultCellStyle.BackColor = Color.DarkGray;
dgvData.AlternatingRowsDefaultCellStyle.BackColor = Color.DarkOliveGreen;
// 方法二:自訂函數來完成
OddEvenColor(dgvData);
}
public void OddEvenColor(DataGridView dgv)
{
if (dgv.Rows.Count == 0) return;
// 下列方法二擇一
// foreach 作法
foreach (DataGridViewRow row in dgv.Rows)
{
int index = dgv.Rows.IndexOf(row);
if (index % 2 == 0)
{
row.DefaultCellStyle.BackColor = Color.DarkGray;
}
else
{
row.DefaultCellStyle.BackColor = Color.DarkOliveGreen;
}
}
// for 作法
for (int i = 0; i < dgv.Rows.Count; i++)
{
if (i % 2 == 0)
{
dgv.Rows[i].DefaultCellStyle.BackColor = Color.DarkGray;
}
else
{
dgv.Rows[i].DefaultCellStyle.BackColor = Color.DarkOliveGreen;
}
}
}
}
}
沒有留言:
張貼留言