相當接近你所需要的。你的情況下該行將爲空。你可以用顏色做一些更多的優化,字體等
alt text http://img72.imageshack.us/img72/6450/76236843.jpg
private void dataGridView1_RowPostPaint(object sender, DataGridViewRowPostPaintEventArgs e)
{
if (e.RowIndex == 2)
{
// Calculate the bounds of the row
int rowHeaderWidth = dataGridView1.RowHeadersVisible ?
dataGridView1.RowHeadersWidth : 0;
Rectangle rowBounds = new Rectangle(
rowHeaderWidth,
e.RowBounds.Top,
dataGridView1.Columns.GetColumnsWidth(
DataGridViewElementStates.Visible) -
dataGridView1.HorizontalScrollingOffset + 1,
e.RowBounds.Height);
// Paint the row
ControlPaint.DrawStringDisabled(e.Graphics, "- - - - - - - - - - - - - - - - - - - - - - - -", new Font("Times New Roman", 15f), Color.DarkGray, rowBounds, TextFormatFlags.Default);
}
}
Form2_Load() - 只是爲了讓代碼完成,這樣就可以只複製粘貼複製。
private void Form2_Load(object sender, EventArgs e)
{
this.dataGridView1.ColumnCount = 4;
this.dataGridView1.Columns[0].Name = "Recipe";
this.dataGridView1.Columns[0].SortMode =
DataGridViewColumnSortMode.NotSortable;
this.dataGridView1.Columns[1].Name = "Category";
this.dataGridView1.Columns[2].Name = "Main Ingredients";
this.dataGridView1.Columns[3].Name = "Rating";
// Hide the column that contains the content that spans
// multiple columns.
this.dataGridView1.Columns[2].Visible = false;
// Populate the rows of the DataGridView.
string[] row1 = new string[]{"Meatloaf", "Main Dish",
"1 lb. lean ground beef, 1/2 cup bread crumbs, " +
"1/4 cup ketchup, 1/3 tsp onion powder, 1 clove of garlic, " +
"1/2 pack onion soup mix, dash of your favorite BBQ Sauce",
"****"};
string[] row2 = new string[]{"Key Lime Pie", "Dessert",
"lime juice, whipped cream, eggs, evaporated milk", "****"};
string[] row3 = new string[]{"Orange-Salsa Pork Chops",
"Main Dish", "pork chops, salsa, orange juice, pineapple", "****"};
string[] row4 = new string[]{"Black Bean and Rice Salad",
"Salad", "black beans, brown rice", "****"};
string[] row5 = new string[]{"Chocolate Cheesecake",
"Dessert", "cream cheese, unsweetened chocolate", "***"};
string[] row6 = new string[]{"Black Bean Dip", "Appetizer",
"black beans, sour cream, salsa, chips", "***"};
object[] rows = new object[] { row1, row2, row3, row4, row5, row6 };
foreach (string[] rowArray in rows)
{
this.dataGridView1.Rows.Add(rowArray);
}
}
也許你應該考慮邊界。這似乎是一項艱鉅的任務。沒有數據的行中的每個單元格(我假設一個具有某個值的隱藏列)將不得不自定義繪製。 – 2010-04-21 05:51:54