Mercurial > repos > IBBoard.WarFoundry.GUI.WinForms
comparison UI/EquipmentAmountControl.cs @ 88:340e711ca4c3
Re #205: Odd/prime numbers causes a crash
* Resolve crash in call stack by ignoring update events when updating a spinner box
author | IBBoard <dev@ibboard.co.uk> |
---|---|
date | Mon, 02 Nov 2009 20:02:12 +0000 |
parents | 0bb9f40d44eb |
children | 971f7801f984 |
comparison
equal
deleted
inserted
replaced
87:4c5c8f91937a | 88:340e711ca4c3 |
---|---|
124 OnValueChanged(); | 124 OnValueChanged(); |
125 } | 125 } |
126 | 126 |
127 private void SetNumericValueFromPercentage() | 127 private void SetNumericValueFromPercentage() |
128 { | 128 { |
129 numeric.ValueChanged -= numeric_ValueChanged; | |
129 numeric.Value = CalculateNumericValueFromPercentage(percentage.Value); | 130 numeric.Value = CalculateNumericValueFromPercentage(percentage.Value); |
131 numeric.ValueChanged += numeric_ValueChanged; | |
130 } | 132 } |
131 | 133 |
132 private decimal CalculateNumericValueFromPercentage(decimal percent) | 134 private decimal CalculateNumericValueFromPercentage(decimal percent) |
133 { | 135 { |
134 return (decimal) IBBoard.CustomMath.IBBMath.Round((double)(unit.Size * (percent / 100)), equip.RoundNumberUp); | 136 return (decimal) IBBoard.CustomMath.IBBMath.Round((double)(unit.Size * (percent / 100)), equip.RoundNumberUp); |
141 } | 143 } |
142 | 144 |
143 private void SetPercentageValueFromNumeric() | 145 private void SetPercentageValueFromNumeric() |
144 { | 146 { |
145 int number = (int)numeric.Value; | 147 int number = (int)numeric.Value; |
148 percentage.ValueChanged -= percentage_ValueChanged; | |
146 percentage.Value = CalcualtePercentageValueFromNumber(number); | 149 percentage.Value = CalcualtePercentageValueFromNumber(number); |
150 percentage.ValueChanged += percentage_ValueChanged; | |
147 } | 151 } |
148 | 152 |
149 private decimal CalcualtePercentageValueFromNumber(int number) | 153 private decimal CalcualtePercentageValueFromNumber(int number) |
150 { | 154 { |
151 return (decimal) Math.Round((number / (unit.Size * 1.0)) * 100, 1); | 155 return (decimal) Math.Round((number / (unit.Size * 1.0)) * 100, 1); |