将表单的大小和位置属性绑定到标签的文本 属性
Binding Form's Size and Location properties to Labels' Text property
我习惯了 WPF 中的 data-binding,它完全支持它,我知道它存在但是Windows 表格.
出于好奇,我想做一些非常基本的数据绑定:
- 将当前
Form
的 Size
属性 绑定到 Label
的 Text
属性
- 对
Location
属性 做同样的事情
是否可行,如果可行,如何实现?
以下是实现方法:
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
Label positionOutput = new Label { Dock = DockStyle.Top };
positionOutput.DataBindings.Add("Text", this, "Location");
Label sizeOutput = new Label { Dock = DockStyle.Top };
sizeOutput.DataBindings.Add("Text", this, "Size");
this.Controls.Add(positionOutput);
this.Controls.Add(sizeOutput);
}
}
它适用于 Location
和 Size
,因为 Form
class 提供了专用的数据绑定事件:LocationChanged
和 SizeChanged
.
但是使用 Width
或 Height
您将无法从实时自动更新中受益,因为没有 WidthChanged
或 HeightChanged
事件。
我习惯了 WPF 中的 data-binding,它完全支持它,我知道它存在但是Windows 表格.
出于好奇,我想做一些非常基本的数据绑定:
- 将当前
Form
的Size
属性 绑定到Label
的Text
属性 - 对
Location
属性 做同样的事情
是否可行,如果可行,如何实现?
以下是实现方法:
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
Label positionOutput = new Label { Dock = DockStyle.Top };
positionOutput.DataBindings.Add("Text", this, "Location");
Label sizeOutput = new Label { Dock = DockStyle.Top };
sizeOutput.DataBindings.Add("Text", this, "Size");
this.Controls.Add(positionOutput);
this.Controls.Add(sizeOutput);
}
}
它适用于 Location
和 Size
,因为 Form
class 提供了专用的数据绑定事件:LocationChanged
和 SizeChanged
.
但是使用 Width
或 Height
您将无法从实时自动更新中受益,因为没有 WidthChanged
或 HeightChanged
事件。