C# 将窗体的大小和位置属性绑定到标签的文本属性
我习惯于WPF中的数据绑定,WPF对它有完全的支持,我知道它存在,但在Windows窗体中受限制更大 出于好奇,我想做一些真正基础的数据绑定: 将当前表单的大小属性绑定到标签的文本属性 对Location属性执行相同的操作C# 将窗体的大小和位置属性绑定到标签的文本属性,c#,.net,winforms,data-binding,C#,.net,Winforms,Data Binding,我习惯于WPF中的数据绑定,WPF对它有完全的支持,我知道它存在,但在Windows窗体中受限制更大 出于好奇,我想做一些真正基础的数据绑定: 将当前表单的大小属性绑定到标签的文本属性 对Location属性执行相同的操作 有可能吗?如果有,如何实施?以下是如何实施: public partial class Form1 : Form { public Form1() { InitializeComponent(); Label position
有可能吗?如果有,如何实施?以下是如何实施:
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);
}
}
它适用于位置和大小,因为对于这两种情况,Form类都提供了专用的数据绑定事件:LocationChanged和SizeChanged
但是对于宽度或高度,您将不会受益于实时自动更新,因为没有宽度更改或高度更改事件。您是否看到了以下情况:?您的第一个绑定应该使用位置作为数据成员名称,而不是位置。如果你修复了这个错误,那么它应该会工作。@RogerN Ouch这么愚蠢:但是为什么它也会破坏第二个绑定呢?谢谢。@LarsTech原始代码有缺陷,RogerN发现了。我已经修复了它,并使它成为一个社区wiki,希望它能帮助未来有同样需求的开发人员