FormLayoutPanel,使用LinkLabels时不更改方向

时间:2018-04-18 02:24:14

标签: c# visual-studio linklabel

我正在尝试将FlowLayoutPanel与Visual Studio中的linkLabels一起用于快速项目。我选择了“TopDown”作为方向和包装为false。当我启动该计划;但是,方向总是从左到右显示。有没有盒子或者我没有检查的东西?或者有任何理由说linklabel会忽略流向吗?

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

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);
    }


  }
}

这是我启动程序之前的控件视图。 This is the control view before I've started the program.

这是我在运行程序时看到的 - 用红色箭头标记。 enter image description here

1 个答案:

答案 0 :(得分:0)

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

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

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