大家好,又见面了,我是你们的朋友全栈君。如果您正在找激活码,请点击查看最新教程,关注关注公众号 “全栈程序员社区” 获取激活教程,可能之前旧版本教程已经失效.最新Idea2022.1教程亲测有效,一键激活。
Jetbrains全系列IDE稳定放心使用
有很多时候,开发winform,系统给的控件往往不能满足需求。所以,我们需要自己的写自己的控件来使用。下面通过具体的例子来讲解,怎么通过继承控件来写出适用自己的控件。
自定义fowllowpanel控件:
在实现动态布局的时候,很多时候需要生成一个控件自动的排列在上一个控件之下,这个时候我们就可以通过继承panel容器来实现。
代码如下:
class PcFollowPanel:Panel
{
//控件间隔
protected int controlSpace;
public PcFollowPanel()
{
}
public PcFollowPanel(int controlSpace)
{
this.controlSpace = controlSpace;
}
/// <summary>
/// 计算控件中子控件宽度,不包括最后一个控件的下面的空格
/// </summary>
/// <returns></returns>
public int GetChildsWidth()
{
int width = 0;
foreach (Control c in this.Controls)
{
if (width < c.Width)
{
width = c.Width;
}
}
return width;
}
/// <summary>
/// 计算控件中子控件长度,不包括最后一个控件的下面的空格
/// </summary>
/// <returns></returns>
public int GetChildsLenth()
{
int lenth = 0;
foreach (Control c in this.Controls)
{
lenth = lenth + c.Height + controlSpace;
}
return lenth;
}
/// <summary>
/// 添加控件,自动排列
/// </summary>
/// <param name=”c”></param>
public void AddControl(Control c)
{
c.Location = new Point(0, GetChildsLenth() + controlSpace);
this.Controls.Add(c);
this.Size = new Size(GetChildsWidth(), GetChildsLenth());
}
}
发布者:全栈程序员-用户IM,转载请注明出处:https://javaforall.cn/179638.html原文链接:https://javaforall.cn
【正版授权,激活自己账号】: Jetbrains全家桶Ide使用,1年售后保障,每天仅需1毛
【官方授权 正版激活】: 官方授权 正版激活 支持Jetbrains家族下所有IDE 使用个人JB账号...