2010-07-30 20 views
5

Giả sử chúng tôi có 0 được hiển thị trong trường giá trị của điều khiển và tôi muốn rằng nếu giá trị là 0 - hiển thị string.Empty (Tôi biết rằng loại giá trị là thập phân và không thể chèn chuỗi nào thay vì số thập phân trong đó, nhưng vẫn ... Có lẽ có một số định dạng có thể có?).Tôi có thể ẩn Giá trị trong kiểm soát NumericUpDown không?

Trả lời

4

Lưu ý: Đây là phụ thuộc vào việc thực hiện hiện tại của NumericUpDown.

Những gì bạn cần làm là tạo một điều khiển mới được thừa kế từ NumericUpDown ví dụ rằng:

public partial class SpecialNumericUpDown : NumericUpDown 
{ 
    public SpecialNumericUpDown() 
    { 
     InitializeComponent(); 
    } 

    protected override void UpdateEditText() 
    { 
     if (this.Value != 0) 
     { 
      base.UpdateEditText(); 
     } 
     else 
     { 
      base.Controls[1].Text = ""; 
     } 
    } 
} 
1

Dường như chỉ có sự hỗ trợ rất hạn chế để thay đổi định dạng.

Tôi chưa tự mình thử. Nhưng bạn có thể tạo một lớp con và ghi đè phương thức UpdateEditText để hỗ trợ định dạng tùy chỉnh của bạn. Một cái gì đó như thế này:

protected override void UpdateEditText() 
{ 
    this.Text = Value.ToString(); // Insert your formatting here 
} 
1
public partial class MyNumericUpDown : NumericUpDown 
{ 
    public override string Text 
    { 
     get 
     { 
      if (base.Text.Length == 0) 
      { 
       return "0"; 
      } 
      else 
      { 
       return base.Text; 
      } 
     } 
     set 
     { 
      if (value.Equals("0")) 
      { 
       base.Text = ""; 
      } 
      else 
      { 
       base.Text = value; 
      } 
     } 
    } 
} 
-1

Nếu bạn chỉ muốn ẩn giá trị từ người sử dụng, bạn có thể làm ForeColor giống như BackColor nên giá trị bên trong NumericUpDown sẽ ẩn với người dùng.

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