2013-07-09 52 views
8

Tôi đang sử dụng Microsoft Visual C# 2010 Express. Khi tôi thay đổi giá trị của numericUpDown bằng cách sử dụng mũi tên, nút của tôi sẽ bật. Nhưng tôi cũng muốn bật nút của tôi khi tôi thay đổi giá trị của numericUpDown bằng cách thay đổi văn bản trực tiếp.Sự kiện văn bản được đổi số của NumericUpDown

Tôi đang sử dụng đoạn mã sau:

private void numericUpDown1_ValueChanged(object sender, EventArgs e) 
{ 
    button1.Enabled = true; 
} 
+0

Và vấn đề là gì? – Abbas

+1

Cố gắng lấy nét con trỏ của điều khiển SốUpDown sau khi bạn thay đổi số –

+0

Hoặc nhấn enter. Bạn cũng có thể chỉ đăng ký sự kiện nhấn phím, nhưng hãy nhớ rằng văn bản chưa được xác thực vì vậy nếu bạn gọi giá trị ở đó, bạn sẽ nhận được giá trị cũ. Tuy nhiên, nếu bạn gọi giá trị Số đếm ngược bên trong sự kiện button.Click, nó sẽ được thay đổi. – Martheen

Trả lời

16

Bạn có thể cần phải sử dụng TextChanged sự kiện thay vì sử dụng ValueChanged. Sự kiện Giá trị đã thay đổi cần bạn nhấn phím enter sau khi thay đổi giá trị để có được ValueChanged được kích hoạt.

gì MSDN nói về NumericUpDown.ValueChanged Event

Đối với trường hợp ValueChanged xảy ra, tài sản giá trị gia tăng có thể được thay đổi trong mã, bằng cách nhấn lên hoặc nút xuống, hoặc do người sử dụng nhập giá trị mới được đọc bởi điều khiển. Giá trị mới được đọc khi người dùng truy cập phím ENTER hoặc điều hướng khỏi điều khiển. Nếu người dùng nhập giá trị mới và sau đó nhấp vào nút lên hoặc xuống, sự kiện Giá trị Giá trị đã thay đổi sẽ xảy ra hai lần, MSDN.

Sự kiện liên kếtThay đổi sự kiện.

private void TestForm_Load(object sender, EventArgs e) 
{ 
    numericUpDown1.TextChanged += new EventHandler(numericUpDown1_TextChanged); 
} 

Tuyên bố về sự kiện TextChanged.

void numericUpDown1_TextChanged(object sender, EventArgs e) 
{ 
    button1.Enabled = true; 
} 
+0

Có thể là khi tôi thay đổi giá trị, nút sẽ được bật, mà không cần nhấn enter ?? – Lany

+0

Bạn đã thử sự kiện TextChanged chưa? – Adil

+0

vâng tôi đã thử rằng ... không áp dụng ở đây. nhưng có thể thực hiện bằng cách nhấn nút enter. btw thankz :) – Lany

Các vấn đề liên quan