Tôi đang xây dựng một ứng dụng WPF nhỏ (rất) cần chấp nhận đầu vào của người dùng dưới dạng một chuỗi các số.
Người dùng sẽ nhập bất cứ nơi nào từ 1-30 số (tất cả các số có 6 chữ số) và sau đó nhấp vào nút loại 'Gửi'. Đó là toàn bộ ứng dụng, không có gì hơn.
Tôi muốn biến điều này thành 'ma sát thấp' nhất có thể, giữ cho tổng số lần nhấn và nhấn nút mà người dùng phải làm ở mức tối thiểu. Và đồng thời, giữ cho nó trực quan nhất có thể.
Cách tốt nhất để chấp nhận loại đầu vào này là gì?
Điều duy nhất tôi có thể nghĩ đến là một hộp văn bản và người dùng chỉ cần nhập số của họ ở dạng được phân tách bằng dấu phẩy, nhưng tôi rất muốn nghe nếu có ai có giải pháp tốt hơn.
Tôi sẽ đề nghị một hộp văn bản thêm các mục vào hộp danh sách. Sau đó, người dùng sẽ có thể thêm, chỉnh sửa và xóa khỏi hộp danh sách.
Theo kinh nghiệm của tôi, trong khi một bộ số được phân tách có thể dễ dàng sao chép/dán từ ứng dụng này sang ứng dụng khác, việc nhập thủ công không dễ dàng, đặc biệt là cho tối đa 30 mục. Ngược lại, nếu người dùng của bạn quen với việc nhập các chuỗi phân tách dài, hãy cho phép hộp văn bản chấp nhận các mục được phân tách, sau đó tự động phân tách dữ liệu và thêm từng mục vào hộp danh sách. Điều này sẽ cho phép người dùng có kinh nghiệm thêm nhiều mục, đồng thời đơn giản hóa các chỉnh sửa bằng cách coi danh sách là các thực thể riêng lẻ.
Để giữ tổ hợp phím ở mức tối thiểu, có một hộp văn bản nơi bạn nhập số, mỗi khi bạn nhập 6 chữ số, hãy sao chép số vào danh sách và xóa hộp văn bản, không thể quét và tìm lỗi điều khiển bằng dấu phẩy.
Nhưng, hãy nhớ rằng thực sự không thể gõ nhiều số mà không mắc lỗi như vậy:
Đảm bảo dễ dàng chỉnh sửa các số bạn đã nhập
Nếu có một cách để xác nhận số là cờ chính xác, số đó là hợp lệ/không hợp lệ càng sớm càng tốt.
Cố gắng làm cho UI giống với bất cứ thứ gì chúng đang sao chép các số nếu có thể.
Hiển thị các số quá khứ trong một danh sách ở phông chữ có chiều rộng cố định (điều đó giúp dễ dàng nhìn thấy những thứ như 15 số quá khứ đều có số 2 ở vị trí thứ 3 ngoại trừ số đó, tôi chắc chắn đã nhầm nó)
Kiểm tra, Kiểm tra, Kiểm tra - thật dễ dàng trong trường hợp của bạn, chỉ cần đo thời gian để nhập tất cả các số và số lỗi - xây dựng một số thiết kế và xem những gì hoạt động tốt nhất, cải thiện điều đó với các bản sửa lỗi dựa trên những gì người dùng đang vật lộn.
Cố gắng xây dựng theo đề xuất của @ Nescio và làm cho nó rất hiệu quả.
Xem xét có một hộp văn bản và một hộp danh sách:
[12____]
111111
222222
333333
*12____*
123456
được nhập và loại người dùng 7
, mục nhập nên được thêm vào danh sách và họ sẽ nhận được 7_____
trong hộp văn bản.[ new ]
).Hỗ trợ cắt và dán nếu bạn có thể. Người dùng thường điều chỉnh quy trình làm việc của họ theo những cách không lường trước được, cố gắng không cản trở họ.
Bạn có thể làm điều này theo hai cách.
Tạo 30 trường đầu vào có chỗ cho 6 chữ số trong mỗi chữ số. Khi người dùng đã nhập tất cả 6 chữ số nhảy sang tiếp theo hoặc sử dụng tab để chuyển sang tiếp theo.
Tạo 1 trường nhập và thêm một văn bản có nội dung "Sử dụng phím tab để thêm bộ dữ liệu mới" hoặc đại loại như thế. Và sau đó thêm một trường đầu vào khác mỗi khi người dùng đẩy trường tab.
Người dùng lấy số điện thoại họ nhập vào hệ thống của bạn ở đâu? Họ có thể sao chép/dán
Nếu điều đó là có thể, thì hãy xem cách chức năng sao chép/dán để nhập số sê-ri trong một số ứng dụng như Adobe và Microsoft. Người dùng có thể sao chép một chuỗi số dài và dán vào một số trường trong một cú trượt.
Mặt khác, câu trả lời của ThomPete hoạt động khá tốt.