【C#】UserControl用法

为了避免将所有的控件堆在 MainForm上,导致整个视图和逻辑特别复杂,可以使用UserControl将相关的控件组合起来,独立成一个个小的视图。

比如主窗口中有多个Tab选项卡,可以将每个Tab选项卡的视图独立成一个UserControl,通过手动添加或者拖放添加到Form中。下面以PrintPanel为例说明用法(VS2015)。

  • 首先,“添加——>新建项——>Visual C#项——>用户控件”,按照原来Tab中的样式设计;
// 与Form的设计类似,只是继承自UserControl
namespace Demo.Views
{
    public partial class PrintPanel : UserControl
    {
        public PrintPanel()
        {
            InitializeComponent();
        }
        ......
    }
}
  • 手动添加: 将PrintPanel添加到MainForm的tab1中。
namespace Demo
{
    public partial class Main : Form
    {
        private PrintPanel printPanel;

        public Main()
        {
            ......
            printPanel = new PrintPanel();
            printPanel.Dock = DockStyle.Fill;
            tab1.Controls.Add(printPanel);
            ......
        }
    }
}
  • 拖放添加: 对于一些小的自定义控件,如果需要显示在“工具箱”中,像其他控件一样拖放设计,可以修改系统设置显示自定义控件。
    • 工具——> 选项——> Windows窗体设计器——> 常规——> AutoToolBoxPopulate(自动填充工具箱)——> True
  • 13
    点赞
  • 36
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
好的,以下是一个基于TextBox的UserControl示例: 首先,我们需要创建一个新的UserControl。在Visual Studio中,选择“项目”菜单,然后选择“添加新项”,在“添加新项”对话框中选择“用户控件”模板,然后命名您的用户控件并单击“添加”按钮。 在用户控件的设计器中,将一个TextBox拖放到您的用户控件上。然后,打开用户控件的代码视图,并添加以下代码: ```csharp public partial class MyTextBox : UserControl { public MyTextBox() { InitializeComponent(); } public string TextValue { get { return textBox1.Text; } set { textBox1.Text = value; } } public int MaxLengthValue { get { return textBox1.MaxLength; } set { textBox1.MaxLength = value; } } public bool ReadOnlyValue { get { return textBox1.ReadOnly; } set { textBox1.ReadOnly = value; } } } ``` 在这个示例中,我们添加了三个公共属性,使用户能够访问TextBox的Text、MaxLength和ReadOnly属性。此外,我们还在构造函数中调用了InitializeComponent方法,这是由Visual Studio自动生成的方法,用于初始化用户控件的设计器。 现在,我们需要在设计器中打开MyTextBox的属性面板,并将其Dock属性设置为“Fill”,以便使TextBox填充整个用户控件。 最后,我们可以在窗体设计器中使用MyTextBox控件。在Visual Studio中打开您的窗体设计器,然后将MyTextBox拖放到您的窗体上。您可以使用属性面板设置MyTextBox的属性,就像设置普通TextBox一样。 这样,我们就创建了一个基于TextBox的UserControl,让用户可以方便地使用它来输入文本。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值