将winform图形与文本框进行数据绑定

时间:2016-06-23 23:09:36

标签: c# winforms

我想在Rectangle事件中使用以下代码绘制Paint

e.Graphics.DrawRectangle(Pens.Red, x1, y1, width1, height1);

如何使用c#将矩形的宽度/高度数据绑定到TextBox中的Form?我希望根据TextBox输入立即改变绘制矩形的大小。

1 个答案:

答案 0 :(得分:1)

要解决这个问题,请考虑以下几点:

  1. Rectanglestruct,您无法将其用于数据绑定,因为在设置数据绑定时,您的结构将传递给Binding对象按值,所有更改将在另一个实例上进行。您需要一个类来保存数据绑定的属性。

  2. 为了能够刷新绘图,您应该将绘图逻辑放在绘图表面的Paint事件中。然后,当您需要刷新绘图时,请调用绘图表面的Invalidate方法。

  3. 您可以在更改文本后立即重绘矩形,而不使用数据绑定。在这种情况下,只需在Invalidate的{​​{1}}事件中调用TextChanged绘制表面的方法,并解析输入的值并在TextBox事件中使用它绘制矩形。

  4. 示例

    在此示例中,我使用Paint作为绘图表面,并在Form中定义Width1Height1属性,并将Form控件绑定到这些属性。我在属性的setter中调用TextBox来刷新表单上的绘画:

    this.Invalidate()