0

我正在尝试在 Visual Studio 中将 FlowLayoutPanel 与 linkLabels 一起用于快速项目。我选择了“TopDown”作为方向并包装为假。当我启动程序时;但是,方向总是从左到右。有没有我没有检查过的盒子或其他东西?或者链接标签是否有任何理由会忽略流向?

这是我的代码和我看到的一些屏幕截图。

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;

namespace myProject
{
public partial class Form1 : Form
{
    FlowLayoutPanel panel = new FlowLayoutPanel();


    public Form1()
    {
        InitializeComponent();

        linkLabel1.LinkClicked += linkLabel1_LinkClicked;
        linkLabel2.LinkClicked += linkLabel2_LinkClicked;
        linkLabel3.LinkClicked += linkLabel3_LinkClicked;

        Controls.Add(panel);
        panel.Controls.Add(linkLabel1);
        panel.Controls.Add(linkLabel2);
        panel.Controls.Add(linkLabel3);
    }

    private void linkLabel1_LinkClicked(object sender, LinkLabelLinkClickedEventArgs e)
    {
        panel.Controls.SetChildIndex(linkLabel1, 0);
    }

    private void linkLabel2_LinkClicked(object sender, LinkLabelLinkClickedEventArgs e)
    {
        panel.Controls.SetChildIndex(linkLabel2, 0);
    }

    private void linkLabel3_LinkClicked(object sender, LinkLabelLinkClickedEventArgs e)
    {
        panel.Controls.SetChildIndex(linkLabel3, 0);
    }


  }
}

这是我启动程序之前的控制视图。 这是我启动程序之前的控制视图。

这是我运行程序时看到的 - 用红色箭头标记。 在此处输入图像描述

4

1 回答 1

0

因为您在代码隐藏中初始化 FlowLayoutPanel,所以您必须在相同的代码隐藏中设置 FlowLayoutPanel 的这个新实例的 FlowDirection 属性:

    FlowLayoutPanel panel = new FlowLayoutPanel();
    public Form1()
    {
        InitializeComponent();
        panel.FlowDirection = FlowDirection.TopDown;

您在代码隐藏中声明的 FlowLayoutPanel 与您在布局中拥有的分开,因此 FlowDirection 属性的设置不同。我测试了上面的代码,我相信它可以满足您的需求。

于 2018-04-18T03:26:26.637 回答