2009-10-23 44 views
7

Chúng tôi có một vài DateTimePickers trên UserControl tùy chỉnh, trên Biểu mẫu. Chúng được hiển thị, nhưng không được kích hoạt (chỉ cho mục đích hiển thị). Khi UserControl đang tải, các DateTimePickers được gán giá trị từ một DataRow đến từ một DataSet lưu trữ một bản ghi duy nhất được trả về từ một thủ tục lưu sẵn SQL Server.DateTimePicker hiển thị ngày hôm nay thay vì hiển thị Giá trị thực tế

Có một hành vi không nhất quán trong đó người dùng đôi khi nhìn thấy ngày hôm nay thay vì ngày được gán cho DateTimePicker. Nó dường như không quan trọng cho dù tôi gán ngày Tôi muốn tài sản .Value hoặc tài sản .text:

txtstart.Value = (DateTime) dr["Group_Start_Date"]; 
txtend.Text = dr["Term_Date"].ToString(); 

Tôi hy vọng rằng trong hai báo cáo trên, một trong những cách sử dụng các tài sản giá trị gia tăng là phù hợp hơn . Nhưng, trong cả hai trường hợp, ngày hôm nay được hiển thị cho người dùng bất kể giá trị nằm trong cơ sở dữ liệu. Trong trường hợp của txtstart.Value, Visual Studio cho tôi thấy rằng giá trị được gán như mong đợi. Vậy tại sao nó không hiển thị ngày đó cho người dùng thay vì ngày hôm nay?

+1

Nếu DateTimePicker ecnounters một giá trị rỗng hoặc null, nó sẽ hiển thị ngày hôm nay. – Stewbob

+3

Vâng, nếu DateTimePicker là * luôn luôn * vô hiệu hóa tại sao không sử dụng một hộp văn bản thay thế? – abhilash

+0

Thực ra tôi đã chuyển những hộp này sang hộp văn bản vì tôi không thể xác định được tại sao một điều khiển bị vô hiệu hóa có ở vị trí đầu tiên. Nhưng điểm vẫn còn. Nếu tôi gán một giá trị cho một DateTimePicker trong mã, đó là giá trị mà tôi mong đợi để xem trong thời gian chạy. – reverendlarry

Trả lời

0

Tôi đã kết thúc với đề xuất của AB Nolan. Lý do đằng sau một DateTimePicker bị vô hiệu hóa không bao giờ rõ ràng với tôi, do đó, trở lại ngày 10/23/2009, thay vì tiếp tục phiền phức với điều khiển tôi chỉ hiển thị ngày tôi muốn trong TextBoxes thay thế.

0

Dường như có vấn đề với việc có nhiều DateTimePickers. Tôi đã có thể nhận được xung quanh vấn đề (lỗi?) Bằng cách lập trình tạo DateTimePickers với các giá trị tôi muốn và thêm chúng vào biểu mẫu.

0

Tôi đã phát hiện ra vấn đề gốc ở đây là gì, answered it here về một câu hỏi tương tự nếu bạn vẫn muốn biết.

+0

Tôi không chắc liệu điều đó có áp dụng cho tình huống ban đầu của tôi hay không. Các DateTimePickers trong ví dụ của tôi đã được hiển thị như đã nêu, nhưng Enabled là sai. – reverendlarry

13

Tôi đã tìm thấy câu trả lời. Bạn phải đặt giá trị hộp kiểm để được chọn để cho biết giá trị không null.

this.dateSold.Checked = true; // đặt thành true hoặc false, như mong muốn this.dateSold.ShowCheckBox = false;

+0

Là người hỏi câu hỏi, tôi không thể thực sự xác nhận điều này là đúng như tôi đã kết thúc theo đề nghị của AB Kolan và chỉ sử dụng hộp văn bản. Nhưng nếu điều này làm việc cho người khác, thì tuyệt vời. – reverendlarry

+1

Tôi xác nhận rằng thuộc tính 'Đã kiểm tra 'có vẻ là vấn đề. Nó có thể chứa một giá trị 'false' mặc dù nó được đặt thành' true' trong trình thiết kế. –

0

Tôi cũng đang gặp sự cố với điều này và thấy rằng bạn thực sự cần đặt giá trị .Checked thành True.

Tôi đặt thuộc tính Checked trong cửa sổ thuộc tính và nó vẫn không hoạt động vì vậy tôi chỉ đặt mã đó trước khi gán giá trị và đã khắc phục sự cố.

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