WinForms: Is there a concept of associating a label with a textbox?

前端 未结 7 835
梦谈多话
梦谈多话 2020-12-18 18:21

I\'m using Visual Studio 2010 with C#. Is there a concept in Windows Forms development of somehow linking a label with is text box? Something so that they move together as

7条回答
  •  野趣味
    野趣味 (楼主)
    2020-12-18 19:02

    There doesn't appear to be a built in one. You can roll your own Field class though. Below is a complete example.

    using System;
    using System.Collections.Generic;
    using System.Linq;
    using System.Text;
    using System.Windows.Forms;
    using System.Drawing;
    
    namespace FieldClassTest
    {
        class Field : FlowLayoutPanel
        {
            public Label label;
            public TextBox text_box;
    
            public Field(string label_text)
                : base()
            {
                AutoSize = true;
    
                label = new Label();
                label.Text = label_text;
                label.AutoSize = true;
                label.Anchor = AnchorStyles.Left;
                label.TextAlign = ContentAlignment.MiddleLeft;
    
                Controls.Add(label);
    
                text_box = new TextBox();
    
                Controls.Add(text_box);
            }
        }
    
        static class Program
        {
            [STAThread]
            static void Main(string[] args)
            {
                Application.EnableVisualStyles();
                Application.SetCompatibleTextRenderingDefault(false);
    
                var form = new Form();
    
                var panel = new FlowLayoutPanel();
                panel.FlowDirection = FlowDirection.TopDown;
                panel.Dock = DockStyle.Fill;
    
                var first_name = new Field("First Name");
                panel.Controls.Add(first_name);
    
                var last_name = new Field("Last Name");
                panel.Controls.Add(last_name);
    
                form.Controls.Add(panel);
    
                Application.Run(form);
            }
        }
    }
    

    Here's what the example program looks like on my system:

    enter image description here

提交回复
热议问题