c# - FlowLayoutPanel 内文本框的自动宽度

原文 标签 c# .net vb.net winforms

在 FlowLayoutPanel 内,我有一个标签和一个文本框 sibe。当我更改 FlowLayoutPanel 的宽度时,我也希望文本框的宽度发生变化。这可能吗?

控件放置如下:

[ 流程布局面板 [标签] [文本框] ]

编辑:基于 Jay Stratemeyer 和 Hans Passant 的代码和建议,我能够拥有一个标签和一个可以调整其宽度并自动换行的文本框。这是代码:

    Private Sub FlowLayoutPanel1_Resize(sender As Object, e As System.EventArgs) Handles FlowLayoutPanel1.Resize
        Dim new_width As Integer = FlowLayoutPanel1.ClientSize.Width - LabelControl1.Width - LabelControl1.Margin.Left - LabelControl1.Margin.Right - TextBox1.Margin.Left - TextBox1.Margin.Right

        If new_width > Me.TextBox1.MinimumSize.Width Then
            Me.TextBox1.Width = new_width
        End If
    End Sub

最佳答案

public Form1()
    {
        InitializeComponent();
        this.Load +=new EventHandler(Form1_Load);
    }

    public int MyFlowPanelOriginalSize { get; set; }
    public int MyFlowPanelNewSize { get; set; }
    public int DifferenceInSizeOfPanel { get; set; }

    private void Form1_Load(object sender, EventArgs e)
    {
        MyFlowPanelOriginalSize = MyFlowPanel.Width;
        MyFlowPanel.Resize += new EventHandler(MyFlowPanel_Resize);
        DifferenceInSizeOfPanel = 0;
    }



    void MyFlowPanel_Resize(object sender, EventArgs e)
    {
        MyFlowPanelNewSize = MyFlowPanel.Width;
        DifferenceInSizeOfPanel = MyFlowPanelNewSize - MyFlowPanelOriginalSize;
        var TextBoxDifference = MyTextBox.Width + DifferenceInSizeOfPanel;
        MyTextBox.Width = TextBoxDifference;
        MyFlowPanelOriginalSize = MyFlowPanel.Width;
    }

关于c# - FlowLayoutPanel 内文本框的自动宽度,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23812544/

相关文章:

c# - 错误 : '<method1>' and '<method2>' cannot overload each other

vb.net 获取/设置属性没有逻辑

vb.net - 编码返回 Double() 以在 VBA 中使用的 .Net 函数

vb.net - .net WebService,绕过 ssl 验证!

c# - 如何上传文件mvc6?

c# - 如何在Visual Studio 2015中的Xamarin.forms Portable应用程序中调用REST Api

c# - Frame.Navigate 到不同程序集中的 Page 派生类

c# - 从坐标中获取第一,第二,第三邻居的算法

.net - 设计 .NET Web 应用程序的正确方法是什么?

c# - GridView中的DropDownList中的Eval()