在TableLayoutPanel中设置RowCount但不设置ColumnCount?

时间:2016-06-28 13:29:33

标签: c# winforms visual-studio-2010 .net-4.0

此winform的目的是显示DataTable,以便tableLayoutPanel1中的每一列都由四个单元格组成;每个人都有以下四种颜色。每个单元格都有 WorkNum

我知道将显示多少行(在本例中为四行),但我希望控件能够管理将显示多少列。我遇到的问题是,我不知道如何设置FlowLayoutPanelTableLayoutPanel,以便每列有四行。换句话说,我可以设置rowCount,但不能设置columnCount

DataTable如下所示:

Color       WorkNum
-------------------
Yellow      4304
Blue        4593
Green       4346
Orange      8775
Yellow      8464
Blue        3515
Green       5426
Orange      9452
Yellow      2012
Blue        0546
Green       0551
Orange      0144

dataGridView1tableLayoutPanel的winform看起来像这样。一切正常; 唯一问题是我需要设置rowCount:

public partial class FormMonitor : Form
{
    DataGridView dataGridView1 = new DataGridView();

    public FormMonitor()
    {
        InitializeComponent();
        FillGrid();
    }
    private void FillGrid()
    {
        DataTable tableColors = GetData(connString);
        dataGridView1.DataSourceChanged += dataGridView1_DataSourceChanged;
        dataGridView1.DataSource = tableColors;
    }
    private void dataGridView1_DataSourceChanged(object sender, EventArgs e)
    {
        DataTable dt = (DataTable)dataGridView1.DataSource;
        tableLayoutPanel1.Controls.Clear();
        tableLayoutPanel1.SuspendLayout();
        foreach (DataRow row in dt.Rows)
        {
            UcColor ucb = new UcColor(row, tableLayoutPanel1);
            tableLayoutPanel1.Controls.Add(ucb);
        }
        tableLayoutPanel1.ResumeLayout();
    }
}

用户控件如下所示:

public partial class UcColor : UserControl
{
    public UcColor()
    {
        InitializeComponent();
    }
    public UcColor(DataRow row, TableLayoutPanel CellsFLP)
    {
        InitializeComponent();
        this.BackColor = Color.FromName(row["color"].ToString());
        label1.Text = row["WorkNum"].ToString();
        this.DoubleBuffered = true;
    }
}

我最初以FlowLayoutPanel开始,并且在正确的高度(足够高度以适应四个细胞),它就像一个魅力。但是一旦高度太高,那么一切都会四处移动。

如果我可以使用现有代码,我将不胜感激。出于此示例之外的原因,我无法使用DataGridView

这就是它需要的样子。使用当前代码,一切都正确,但我无法设置要显示的行数。

enter image description here

感谢任何帮助。 感谢。

0 个答案:

没有答案