WinForms中的Label的AutoSize属性
当大量使用UserControl组合UI时,如果更改了Label的Text属性,Label.AutoSize属性会影响UserControl的OnLoad事件的发生顺序;
public override string Text
{
get
{
return base.Text;
}
set
{
base.Text = value;
}
}
public virtual string Text
{
get
{
if (!this.CacheTextInternal)
{
return this.WindowText;
}
if (this.text != null)
{
return this.text;
}
return "";
}
set
{
if (value == null)
{
value = "";
}
if (value == this.Text)
{
return;
}
if (this.CacheTextInternal)
{
this.text = value;
}
this.WindowText = value;
this.OnTextChanged(EventArgs.Empty);
if (this.IsMnemonicsListenerAxSourced)
{
for (Control control = this; control != null; control = control.ParentInternal)
{
Control.ActiveXImpl activeXImpl = (Control.ActiveXImpl)control.Properties.GetObject(Control.PropActiveXImpl);
if (activeXImpl != null)
{
activeXImpl.UpdateAccelTable();
return;
}
}
}
}
}
protected override void OnTextChanged(EventArgs e)
{
using (LayoutTransaction.CreateTransactionIf(this.AutoSize, this.ParentInternal, this, PropertyNames.Text))
{
this.MeasureTextCache.InvalidateCache();
base.OnTextChanged(e);
this.AdjustSize();
base.Invalidate();
}
}
internal void AdjustSize()
{
if (!this.SelfSizing)
{
return;
}
if (!this.AutoSize && ((this.Anchor & (AnchorStyles.Left | AnchorStyles.Right)) == (AnchorStyles.Left | AnchorStyles.Right) || (this.Anchor & (AnchorStyles.Top | AnchorStyles.Bottom)) == (AnchorStyles.Top | AnchorStyles.Bottom)))
{
return;
}
int height = this.requestedHeight;
int width = this.requestedWidth;
try
{
Size size = this.AutoSize ? base.PreferredSize : new Size(width, height);
base.Size = size;
}
finally
{
this.requestedHeight = height;
this.requestedWidth = width;
}
}
WinForms中的Label的AutoSize属性的更多相关文章
- label 的autosize属性
label 的autosize属性,显示不全的问题.
- WinForm中遇到Label要显示的内容太长,自动换行
很多朋友都会在开发WinForm中遇到Label要显示的内容太长,但却不能换行的问题.这里我总结了几种方法,供大家参考. 第一种是把Label的AutoSize属性设为False,手动修改Label的 ...
- 【转】C# WinForm中的Label如何换行
第一种是把Label的AutoSize属性设为False,手动修改Label的大小.这样的好处是会因内容的长度而自动换行,但是当内容的长度超过所设定的大小时,多出的内容就会无法显示.因此,这种方法适合 ...
- 关于<label>的for属性的简单探索
在freecodecamp上HTML教程的Create a Set of Radio Buttons这一节中,看到这样一段话, It is considered best practice to se ...
- 用图片作为label,for属性IE下不起作用
IE浏览器存在一个BUG,当你使用label的for属性达到点击label使对应的表单元素聚焦,label中的内容为图片时,IE浏览器下不起作用. 例如: <input type="c ...
- 对CSS中的Position、Float属性的一些深入探讨
对CSS中的Position.Float属性的一些深入探讨 对于Position.Float我们在平时使用上可以说是使用频率非常高的两个CSS属性,对于这两个属性的使用上面可能大多数人存在一些模糊与不 ...
- Android中常用控件及属性
在之前的博客为大家带来了很多关于Android和jsp的介绍,本篇将为大家带来,关于Andriod中常用控件及属性的使用方法,目的方便大家遗忘时,及时复习参考.好了废话不多讲,现在开始我们本篇内容的介 ...
- label的for属性
一.使用介绍 <label>专为input元素服务,为其定义标记. for属性规定label与哪个表单元素绑定 label和表单控件绑定方式又两种: 1.将表单控件作为label的内容,这 ...
- JS学习之DOM节点的关系属性封装、克隆节点、Dom中Style常用的一些属性等小结
JS DOM节点: 在JS DOM中节点的关系被定义为节点的属性: 通常有以下几种节点之间的关系: (这里的关系是所有浏览器都支持的) parentNode 父节点 childNodes ...
随机推荐
- ionic的tabs
<ion-tabs class="tabs-icon-top/bottom(决定这个tabs是置于上面还是底部) tabs-color-active-positive(图标与字体色) ...
- POJ 3414 解题报告!
原题: Pots Time Limit: 1000MS Memory Limit: 65536K Total Submissions: 13227 Accepted: 5550 Special Jud ...
- 第七篇T语言实例开发,文本与程序的几种打开方法(版5.3)
文本与程序的几种打开方法 文本文件的打开方法 函数名: cmd 命令 函数描述: 执行CMD命令 函数原型: cmd(cmdstr) 命令(cmd命令) 函数参数: cmdstr:cmd命令,此处执行 ...
- 第一章:UNIX基础知识
本章内容主要是为了学习UNIX的基本知识和一些最基本的系统函数. 学习的关键就是跟随者书本敲代码.本节遇到的第一个问题就死本书的apue.h这个文件:一开始没有注意这个文件,盲目的去百度,一番百度之后 ...
- 架设lamp服务器后,发现未按照 Apache xsendfile模块,
今天在架设lamp服务器后,发现apache 未按照xsendfile模块,于是查找资料按照如下: 安装apache xsendfile模块yum install mod_xsendfile
- 【jq】c#零基础学习之路(4)抽象类和密封
一.抽象类 1.抽象类不能被实例化 2.抽象类方法必需要实现 3.如何类中函数为抽象函数,其类也需要定义成抽象类 4.关键字 abstract ,函数重写 override. 二.密封类 1.密封类不 ...
- java标准-密码用数组比用字符串安全
转载:http://my.oschina.net/jasonultimate/blog/166968 1) Since Strings are immutable in Java if you sto ...
- 命名空间System.Threading命名空间的同步锁 Monitor类
官方备注: Monitor类通过向单个线程授予对象所来控制对对象的访问.对象所提供限制访问代码块的能力.当一个线程拥有对象的锁时,其他任何线程都不能获取该锁.还可以使用Monitor来确保不会允许其他 ...
- matchesSelector 匹配选择器表达式sizzle的实现
Sizzle.matchesSelector = function( node, expr ) { return Sizzle( expr, null, null, [node] ).leng ...
- golang开发环境(2016.9.16)
一.windows下安装 1.下载go1.7.3.windows-amd64.msi,建议默认安装到‘C:\Go\’ 2.环境变量 变量 值 说明 Path C:\Go\bin 安装程序默认会设置,如 ...