我需要用一個數據表來實現一個用戶控件,或者你建議具有不同列長的東西,它應該是響應式的。 此表中的每一行都至少有3列,列計數沒有最大值。例如,第一行有3列,第二行有5列,第三行有12列。但是,我不知道單行的最大列長度。 我想到用數據表就像如何在每行中的列長度不同的控件中表示數據?
DataTable dt = new DataTable();
dt.Columns.Add("first column", typeof(string));
dt.Columns.Add("second column", typeof(string));
dt.Columns.Add("third column", typeof(List<string>));
DataRow dr = dt.NewRow();
dr[0] = "1";
dr[1] = "a";
dr[2] = new List<string>(){ "a","b","c","d"};
dt.Rows.Add(dr);
dr = dt.NewRow();
dr[0] = "2";
dr[1] = "c";
dr[2] = new List<string>() { "a", "b", "c"};
dt.Rows.Add(dr);
dr = dt.NewRow();
dr[0] = "3";
dr[1] = "d";
dr[2] = new List<string>() { "a", "b", "c","d","e" };
dt.Rows.Add(dr);
gridControl1.DataSource = dt;
我使用的DevExpress GridView的有益的,我看到下面
。
但我不想看到這樣的。有沒有可以代表這種數據的控件,如?
在此先感謝!用於顯示錶和表
一種可能性是使用一個DataGridView與單個列,其值列表項的連接(例如「a; b; c」或「a; b; c; d; d; f」)並處理DataGridView的CellPainting事件以繪製字符串和它們之間的適當邊界。 – Graffito
感謝您的回覆。我認爲你的解決方案,但一個bc d等應該也是可點擊的。 – gokberk
使用DataGridView的CellMouseDown事件並從e.X中推斷邏輯單元。繪製「合併」單元格或處理Cell MouseDown事件時,請使用TextRenderer.Measure String()調整「邏輯」單元格寬度或推導「單擊」項目。 – Graffito