c# winform 制作自定义控件

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了c# winform 制作自定义控件相关的知识,希望对你有一定的参考价值。

在winform中,我想制作一个自定义的控件,自定义的控件里就一个label控件和一个panel控件,想实现的其实就是一个有标题的panel容器。
请问怎么为自定义的控件添加属性和事件,如添加一个Txt属性用来设定label的值。
还有一个问题就是怎么让自定义的控件设为容器,在应用自定义控件时可以把其他控件放进该定义好的控件的panel里面。
谢谢~
请详细说明一下,非常感谢~~

就像一般的对象定义属性和事件就可以了,比如

public string Title get return myLabel.Text; set myLabel.Text = value;

public EventHandler PanelClick add myPanel.Click += value; remove myPanel.Click -= value;

能否在Visual Studio支持拖入控件是由控件的设计器提供的功能,请让你的自定义控件继承自Panel(或ContainerControl),就可以使用此类的设计器来支持设计时拖放了
参考技术A vs2008 中
后台这个这样设置属性.
private string _txt;
public string Txt

set _txt = value;
get return _txt;

this.label1.Text=_txt;
添加控件 你可以用 ControlAdded 事件.来进行你自己的处理
参考技术B 这个学习中!!

C# WinForm开发

C# WinForm开发

1.创建C# WinForm项目

a.进入项目界面

视图里打开工具箱,里面包含所有控件。

b.项目结构

Form1.cs 由两部分组成,一部分业务逻辑,一部分设计器(自动生成代码)。


c.自定义一个Form


2.给控件添加事件

方法1:双击对应的控件。

方法2:属性-事件-回车

        private void button2_Click(object sender, EventArgs e)
        {
            MessageBox.Show("我是Herio");
        }

3.显示时间小项目

        private void ButtonClicked(object sender, EventArgs e)
        {
           string timeStr = DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss");
            timeField.Text = timeStr;
        }

控件设计下的Name就是字段名,Text就是显示的文本。

4.控件

1.Anchor 可设置四个方向的边距不变。

2.Panel面板,配合Dock属性使其停靠在某一侧。

3.Anchor和Dock不能同时设置。

4.自定义控件

5.几种布局

a.FlowLayoutPanel 流式布局

配合dock属性可实现,改变窗体大小时流式布局。

b.TableLayoutPanel 表格布局

表格布局

c.可以自定义控件

6.文本框

绑定一个KeyPress 事件:

        private void textBox1_KeyPress(object sender, KeyPressEventArgs e)
        {
            char ch  = e.KeyChar;
            if (ch == '\\r')
            {
                string str = nameBox.Text;
                MessageBox.Show("用户输入了: "+str);
            }
        }

7.CheckBox 复选框

        private void checkBox_CheckedChanged(object sender, EventArgs e)
        {
            bool isChecked = checkBox.Checked;
            if (isChecked)
            {
                passwordBox.PasswordChar = '\\0';
            }
            else passwordBox.PasswordChar = '*';
        }

8.其他的一些控件

下拉框Comobox

listBox 列表框

PictureBox 图片框

9.资源文件

位于Properties下的Resources.resx

10.自定义控件

11.单文件形式控件

自定义类。

学习视频

https://www.bilibili.com/video/BV1d7411F7PG?p=51

以上是关于c# winform 制作自定义控件的主要内容,如果未能解决你的问题,请参考以下文章

winform 自定义控件

c# 用户自定义控件的问题 winform

C# WinForms 用鼠标拖动控件

C# 做的winform窗体程序把一个Form给为自定义控件?

C# 在winform画了一个自定义控件,现在我要在运行后进行拉伸动态改变大小,但快速拉伸就闪烁,怎么消除

C# WinForm 自定义控件如何实现动态添加子控件