我要動態地創建一個類似於Excel表datagridview
,但我希望有設置colspan
一些列的選項。C#的DataGridView colspan屬性
這個想法只是顯示數據,用戶不會輸入任何內容,但它應該以表/電子表格的形式顯示。如果我不能有datagridview
與colspan
是否有任何其他類型的表類工具,它有colspan
?
我另一方面將動態創建列從數據庫查詢結果。
我正在使用Windows窗體。
任何想法?
我要動態地創建一個類似於Excel表datagridview
,但我希望有設置colspan
一些列的選項。C#的DataGridView colspan屬性
這個想法只是顯示數據,用戶不會輸入任何內容,但它應該以表/電子表格的形式顯示。如果我不能有datagridview
與colspan
是否有任何其他類型的表類工具,它有colspan
?
我另一方面將動態創建列從數據庫查詢結果。
我正在使用Windows窗體。
任何想法?
你可以看看TableLayoutPanel Class,它有一個TableLayoutPanel.SetColumnSpan Method。
下面是一個代碼示例,它跨越的文本框的一個2列:
var dt = new DataTable();
dt.Columns.Add("Id");
dt.Columns.Add("Value1");
dt.Columns.Add("Value2");
dt.Rows.Add(1, "aa", "xx");
dt.Rows.Add(2, "bb","yy");
dt.Rows.Add(3, "cc", "zz");
tableLayoutPanel1.CellBorderStyle = TableLayoutPanelCellBorderStyle.Single;
tableLayoutPanel1.ColumnCount = 4;
tableLayoutPanel1.AutoSize = true;
for (int i = 0; i < dt.Columns.Count; i++)
{
var l = new Label();
l.Dock = DockStyle.Fill;
l.Text = dt.Columns[i].ColumnName;
tableLayoutPanel1.Controls.Add(l, i, 0);
}
var emptyLabel = new Label();
emptyLabel.Text = "Empty label";
tableLayoutPanel1.Controls.Add(emptyLabel, 4, 0);
for (int i = 0; i < dt.Rows.Count; i++)
{
for (int j = 0; j < dt.Rows[i].ItemArray.Length; j++)
{
var tb = new TextBox();
tb.Multiline = true;
tb.Dock = DockStyle.Fill;
tb.Text = dt.Rows[i][j].ToString();
tableLayoutPanel1.Controls.Add(tb, j, i+1);
if (i == 1 && j == 2)
tableLayoutPanel1.SetColumnSpan(tb, 2);
}
}
這就是我正在想的。但在我看來,如果我有很多列和行來填充它,渲染真的很慢。 :/ –
這只是一個解決方法,它不能代替DataGridView的作用。 –
沒有。我是.NET新手,我不知道有什麼選擇。 Datagridview對我的目的看起來不錯,但沒有colspan,這使我無法使用它。 –
Telerik的radcontrols非常好 - 它們有一個gridview,它有很多選項 –
是不是隻有ASP的radcontrol?我正在寫一個Windows窗體應用程序。 –