0

我正在尝试建立从我的数据库生成的公司网格。

我将流程布局设置为自上而下。是否可以像这样在行之间划一条线http://data.worldbank.org/country

如果需要,我的代码贴在下面。

    public void createLinks(string[] groupNames)
    {
        for (int i = 0; i < groupNames.Length; i++)
        {
            LinkLabel obj = new LinkLabel();
            obj.LinkBehavior = System.Windows.Forms.LinkBehavior.HoverUnderline;
            obj.LinkColor = Color.Black;
            obj.Name = groupNames[i];
            obj.Text = groupNames[i];
            obj.Click += delegate(object sender, EventArgs e)
            {LinkLabel ss = sender as LinkLabel;
            frmCompanyReport test = new frmCompanyReport(ss.Name);
            test.Show();
            };
            flowLayoutPanel1.Controls.Add(obj);
        }
    }
4

1 回答 1

1

一种解决方案是使用标签作为一条线。将 AutoSize 设置为 False,将 Height 设置为 1,将 BorderStyle 设置为 FixedSingle。然后将 Width 设置为与 FlowLayoutPanel 相同。

就像是:

    public void createLinks(string[] groupNames)
    {
        for (int i = 0; i < groupNames.Length; i++)
        {
            LinkLabel obj = new LinkLabel();
            obj.LinkBehavior = System.Windows.Forms.LinkBehavior.HoverUnderline;
            obj.LinkColor = Color.Black;
            obj.Name = groupNames[i];
            obj.Text = groupNames[i];
            obj.Click += delegate(object sender, EventArgs e)
            {
                LinkLabel ss = sender as LinkLabel; 
                frmCompanyReport test = new frmCompanyReport(ss.Name);
                test.Show();
            };
            flowLayoutPanel1.Controls.Add(obj);

            Label line = new Label();
            line.AutoSize = false;
            line.BorderStyle = BorderStyle.FixedSingle;
            line.Height = 1;
            line.Width = flowLayoutPanel1.Width;
            flowLayoutPanel1.Controls.Add(line);
        }
    }
于 2013-07-03T15:41:09.020 回答