使用2个NumericUpDown字段来维护Dimensions宽高比

时间:2015-05-27 23:32:18

标签: c# .net winforms

我有两个NumericUpDown文本字段。它们用于图像尺寸。我以前做过但我不记得我是怎么做到的。我在这里查看了20多个相关问题,但他们并非真的同一个问题。逻辑和数学与我需要的完全不同。

基本上,numericUpDown1用于Width,而numericUpDown2用于Height。当numericUpDown1值更改时(通过使用箭头或键入),numericUpDown2也必须自动更改,同时保持正确的宽高比。

我该怎么做?我真的输了。

2 个答案:

答案 0 :(得分:0)

如果宽高比简单地定义如下:宽度/高度,您应该实现两个NumericUpDown控件的ValueChanged事件:如果是numericUpDown1(对于宽度),您应该通过划分新的高度值来设置按宽高比计算的numericUpDown1.Value;在另一个事件中,您应该将numericUpDown2.Value乘以宽高比,以获得新的宽度。

答案 1 :(得分:0)

  • 保留原始值,作为计算的基础。这样可以防止舍入错误。
  • 设置一个标志,表示您正在调整代码中的其他控件,并且他们不应对其事件做出反应。所以你最终不会陷入无休止的循环。