2016-12-26 65 views
0

我需要用一個數據表來實現一個用戶控件,或者你建議具有不同列長的東西,它應該是響應式的。 此表中的每一行都至少有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的有益的,我看到下面

this

但我不想看到這樣的。有沒有可以代表這種數據的控件,如this

在此先感謝!用於顯示錶和表

+0

一種可能性是使用一個DataGridView與單個列,其值列表項的連接(例如「a; b; c」或「a; b; c; d; d; f」)並處理DataGridView的CellPainting事件以繪製字符串和它們之間的適當邊界。 – Graffito

+0

感謝您的回覆。我認爲你的解決方案,但一個bc d等應該也是可點擊的。 – gokberk

+0

使用DataGridView的CellMouseDown事件並從e.X中推斷邏輯單元。繪製「合併」單元格或處理Cell MouseDown事件時,請使用TextRenderer.Measure String()調整「邏輯」單元格寬度或推導「單擊」項目。 – Graffito

回答

0

網格視圖具有固定的行和列

只有你可以添加作爲列和列這種類型的呈現網格視圖的最大數目是不可能在任何網格視圖。

要顯示錶這樣你只能使用HTML預覽您的軟件,或使用draw像這樣這樣創建的圖像不是在網格視圖所有

+0

我可以使用Treelist還是有類似橫向treelist? – gokberk

相關問題