我對C#很陌生(使用Visual Studio),並且在窗體上使用了幾個numericUpDown,它們的數字範圍是8到15.如何在更改之前註冊numericUpDown的值?
當您在這些numericUpDown中更改值時,將值會產生積分成本,降低價值會增加積分......隨着成本的不同,你得到的更高,我試圖在改變之前註冊價值,不幸的是我不知道如何處理這個問題。
任何人都可以指出我正確的方向嗎?
我對C#很陌生(使用Visual Studio),並且在窗體上使用了幾個numericUpDown,它們的數字範圍是8到15.如何在更改之前註冊numericUpDown的值?
當您在這些numericUpDown中更改值時,將值會產生積分成本,降低價值會增加積分......隨着成本的不同,你得到的更高,我試圖在改變之前註冊價值,不幸的是我不知道如何處理這個問題。
任何人都可以指出我正確的方向嗎?
private int numericValue = 8;
private void numericUpDown1_ValueChanged(object sender, EventArgs e)
{
//numericValue holds the before value
...
numericValue = (int)numericUpDown1.Value;
}
這會給出新值,而不是更改前的值。 – 26071986 2014-10-18 21:11:45
@ 26071986你太過簡單了。該代碼賦予之前的價值。當我們輸入* numericUpDown1_ValueChanged *函數時,* numericValue * **是**之前的值。我們使用它並在最後* numericValue =(int)numericUpDown1.Value; *我們改變它。 – 2014-10-18 21:59:30
這裏是我會怎麼做,這是比較簡單的,應該工作得很好,沒有任何問題:
//First, store your values in an array, just a small one
int[] values = {0, 0};
//Then, when the value of the NumericUpDown is changed, move the values around the array
private void numericUpDown1_ValueChanged(object sender, EventArgs e)
{
values[0] = values[1];
values[1] = numericUpDown1.Value;
}
當第一次啓動該程序,該陣列將被初始化爲0, 0
和你的NumericUpDown應具有0
的值。讓我們來看看當我們改變NumericUpDown的值時會發生什麼。
在我們改變數值之前,數組的值是0, 0
。當我們改變它時,數組get的移動到索引0
的索引1
的最後0
,並且NumericUpDown get的當前值移動到索引1
。假設我們將該值更改爲55,則陣列的值現在爲0, 55
。假設我們再次將其更改爲68.陣列的值現在爲55, 68
。數組的舊值始終存儲在數組的索引0
處。
如果您希望NumericUpDown具有與0
不同的默認值,只需更改該數組的初始值,以反映NumericUpDown的默認值。假如你想要默認值爲100
,那麼該陣列應該初始化爲:
int[] values = {0, 100};
當然,我的答案的另一個*複製粘貼* – 2014-10-20 20:27:01
添加一些代碼示例並標記你引用的技術。 'C#'是不夠的 - 它是ASP.NET,WPF,窗體還是... – TarasB 2014-10-18 16:57:42
@TarasB,我已經使用了這個,它是一個'窗體控件',需要將它標記爲Windows窗體。 – 2014-10-18 17:35:59
MSDN鏈接 - http://msdn.microsoft.com/en-us/library/system.windows.forms.numericupdown(v=vs.110).aspx – 2014-10-18 17:43:35