C#如何通过PictureBox继承产生一个新的控件,PictureBox下方包含Label 请问 C#环境下如何通过对PictureBox继承产生一个新的控件,具体要求新的控件上方为PictureBox,PictureBox下方为Label,PictureBox和Label位置绑定!PictureBox保持原PictureBox和Label的属性基本不变。 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 添加用户控件...也就是继承 UserControl 你可以放一个PictureBox 下面放一个Label 从UserControl继承的话要写的东西好像比较多,包括控件的移动、相对位置、大小改变等方面的考虑,这方面不是很熟悉,不知道各位高人能否指点迷津。另外,不知道是否可以直接从PictureBox继承产生新类,在新的类中增加Label控件来实现!如果可以的话希望能给个思路或者方法!最近新接触VS开发平台,很多东西用起来不太适应,希望大家指教! 继承PictureBox只能写picture控件和写自定义方法这种多控件还是要写两个或用用户控件 UserControl 移动、相对位置、大小改变等方面 和PictureBox没什么不同的. 这是组合控件组合PicutreBox和Label 添加用户控件然后给这个空间加上一个PicutreBox和一个Label class LabelPicture:PictureBox { Label label; public LabelPicture() { label = new Label(); label.Text = "label"; label.TextAlign = System.Drawing.ContentAlignment.MiddleCenter; label.BackColor = System.Drawing.Color.Transparent; fitLabelText(); this.Controls.Add(label); } private void fitLabelText() { label.Top = this.Height - label.Height; label.Left = (this.Width - label.Width) / 2; } public override void Refresh() { fitLabelText(); base.Refresh(); } protected override void OnSizeChanged(EventArgs e) { fitLabelText(); base.OnSizeChanged(e); } public string LabelText { get { return label.Text; } set { label.Text = value; this.Refresh(); } } public Color LabelColor { get { return label.ForeColor; } set { label.ForeColor = value; } } }你可根据你具体的要求,添加相应的一些内容. 谢谢了!先通过UserControl生成了一个组合控件,用起来基本能满足要求了!h_w_king的方法是我原本想要的效果,实现起来类似于Delphi下的开发,谢谢! 各位大虾给看看这个问题,关于IIS 部署报错啦。。。 错在你你阿里啊? 安装部署,相对路径设置 问题:DataGridView绑定数据源出现的问题 日期转换的问题 ComboBox 控件 动态刷新 水晶报表中相同的数据行怎么合并为一行! [求助]关于web自定义控件的用法 oracle文本类型的日期操作 Json解析 xsd类使用 installshield 2008 打包水晶报表
最近新接触VS开发平台,很多东西用起来不太适应,希望大家指教!
这种多控件还是要写两个或用用户控件
{
Label label;
public LabelPicture()
{
label = new Label();
label.Text = "label";
label.TextAlign = System.Drawing.ContentAlignment.MiddleCenter;
label.BackColor = System.Drawing.Color.Transparent;
fitLabelText();
this.Controls.Add(label);
}
private void fitLabelText()
{
label.Top = this.Height - label.Height;
label.Left = (this.Width - label.Width) / 2;
} public override void Refresh()
{
fitLabelText();
base.Refresh();
} protected override void OnSizeChanged(EventArgs e)
{
fitLabelText();
base.OnSizeChanged(e);
}
public string LabelText
{
get { return label.Text; }
set
{
label.Text = value;
this.Refresh();
}
} public Color LabelColor
{
get { return label.ForeColor; }
set { label.ForeColor = value; }
}
}
你可根据你具体的要求,添加相应的一些内容.