【问题标题】:Bind Text to size将文本绑定到大小
【发布时间】:2012-01-13 06:00:41
【问题描述】:

如何将文本框的文本属性绑定到面板的宽度?

我试过了:

   panel1.DataBindings.Add("Text", textBox3, "Size.Width");

但它会引发异常

Object does not match target type.

编辑:我想改变面板的宽度,因为文本框中的文本被改变了。

【问题讨论】:

  • 您需要实现一个TypeConverterstring 转换为int 并在绑定中使用此转换器。
  • 请展开您的问题详情...
  • @kilotaras:抱歉,我的评论不适用。我以为你在使用 WPF。
  • 澄清一下,您想要一个文本属性来显示面板在运行时发生变化时的像素宽度?
  • @ChrisBD:反过来。

标签: c# winforms binding


【解决方案1】:

试试

panel1.DataBindings.Add("Text", int.TryParse(textBox3.text), "Size.Width");

【讨论】:

  • -1:很抱歉这么说,但你不知道数据绑定是如何工作的。
【解决方案2】:

试试这个:

void MakeBind()
{
     Binding bind = new Binding("Width", textBox3, "Text");
     bind.Format += new ConvertEventHandler(bind_Format);
     panel1.DataBindings.Add(bind);
}
void bind_Format(object sender, ConvertEventArgs e)
{
     int i = 0;
     int.TryParse((string)e.Value, out i);
     e.Value = i;
}

你也应该知道,你不能直接改变 Size.Width,因为 Size 是一个属性,它返回值类型,你不能这样改变。只是为了设置新的大小和新的宽度。

【讨论】:

  • 愚蠢的我。用作魅力。谢谢。
猜你喜欢
  • 2021-05-07
  • 1970-01-01
  • 2023-01-03
  • 2015-10-14
  • 2016-05-25
  • 2018-10-10
  • 2012-11-27
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多