it-swarm-tr.com

Birden çok sayının kullanıcı girişini kabul etmenin en iyi yolu?

Bir dizi sayı şeklinde kullanıcı girişini kabul etmesi gereken (çok) küçük bir WPF uygulaması oluşturuyorum.

Kullanıcı 1-30 numaradan (6 rakamın tümü) herhangi bir yere girecek ve ardından 'Gönder' türü düğmesine tıklayacaktır. Bu tüm uygulama, başka bir şey değil.

Bunu, kullanıcının yapması gereken tuş vuruşlarının ve düğme tıklamalarının toplam sayısını minimumda tutarak mümkün olduğunca 'düşük sürtünme' yapmak istiyorum. Ve aynı zamanda, mümkün olduğunca sezgisel tutmak.

Bu tür girdileri kabul etmenin en iyi yolu nedir?

Aklıma gelen tek şey bir metin kutusu ve kullanıcı sadece sayılarını virgülle ayrılmış biçimde yazıyor, ancak daha iyi bir çözüm olup olmadığını duymak isterim.

10
Dhaust

Liste kutusuna öğe ekleyen bir metin kutusu öneririm. Kullanıcı daha sonra liste kutusuna ekleme, düzenleme ve listeden kaldırma yapabilmelidir.

Deneyimlerime göre, sınırlandırılmış bir sayı kümesi bir uygulamadan diğerine kopyalamak/yapıştırmak kolay olsa da, özellikle 30 öğeye kadar elle yazmak kolay değildir. Aksine, kullanıcılarınız uzun sınırlandırılmış dizeler girmeye alışıksa, metin kutusunun sınırlandırılmış öğeleri kabul etmesine izin verin, ardından verileri otomatik olarak bölün ve her öğeyi liste kutusuna ekleyin. Bu, deneyimli kullanıcıların birden fazla öğe eklemesine izin verirken, listeyi tek tek varlıklar olarak ele alarak düzeltmeleri basitleştirir.

12
Nescio

Tuş vuruşlarını minimumda tutmak için, sayıları girdiğiniz bir metin kutusu vardır, 6 basamaklı her yazdığınızda sayıyı bir listeye kopyalayın ve metin kutusunu temizleyin, tek bir virgülle sınırlandırılmış kontrolü taramak ve hataları bulmak mümkün değildir.

Ancak, hata olmadan bu kadar çok sayı yazmanın gerçekten imkansız olduğunu unutmayın:

  • Önceden girdiğiniz sayıları düzenlemenin kolay olduğundan emin olun

  • Numarayı doğrulamanın bir yolu varsa, numarayı mümkün olan en kısa sürede geçerli/geçersiz olarak işaretleyin.

  • Kullanıcı arayüzünü, mümkünse sayıları kopyaladıkları her şeye benzemeye çalışın.

  • Sabit genişlikli yazı tipinde bir listedeki geçmiş sayıları göster (geçmiş 15 sayı gibi şeylerin 3. konumdaki 2'nin 2'si varsa, bunun dışında bir tane varsa, yanlış yazmış olmalıyım)

  • Test, Test, Test - sizin durumunuzda kolaydır, sadece tüm sayıları ve hata sayısını girmek için zamanı ölçün - çeşitli tasarımlar oluşturun ve neyin en iyi çalıştığını görün, kullanıcıların uğraştığı şeylere göre düzeltmelerle geliştirin.

7
Nir

@ Nescio'nun önerisini geliştirmeye ve çok verimli hale getirmeye çalışın.

Bir metin kutusu ve bir liste kutusu bulundurmayı düşünün:

[12____]

 111111
 222222
 333333
*12____*
  • İmleç metin kutusundaki son basamağın üzerine geldiğinde ve kullanıcı başka bir basamak yazdığında: girişi liste kutusunun altına ekleyin, metin kutusunu temizleyin ve ilk basamağı olarak ekleyin.
    • Örneğin, 123456 girilir ve kullanıcı türleri 7, giriş listeye eklenmeli ve 7_____.
    • Enter, Tab, virgül vs. yazıyorlarsa girdiyi ekleyin ve metin kutusunu temizleyin.
    • Kullanıcının yalnızca rakamları girmesi ve tuş vuruşlarını en aza indirmesi gerekir. Ancak, buna alışkınlarsa, ekstra sınırlayıcı tuş vuruşlarını kullanmaya devam edebilirler.
  • Geçerli liste kutusu öğesindeki değişiklikleri kullanıcı türleri olarak yansıtın. Boş/yeni öğeler için özel bir liste yer tutucunuz olsun (ör. [ new ]).
  • Kullanıcı liste kutusundan bir öğe seçerse, metin kutusunu doldurun. Düzenlemek için hemen yazmaya başlasınlar (odağı gerektiği gibi kaydırın).
    • Liste kutusu öğelerini seçmek için yukarı/aşağı ok tuşlarını desteklemeyi düşünün. Anahtarlar, odak uygulama içinde nerede olursa olsun çalışmalıdır.
  • Standart olmayan kullanıcı arayüzleri, doğru bir şekilde ele alınmazsa can sıkıcı birçok ince ayrıntıyı açar. Kullanıcı arayüzü doğal olana kadar test edin ve deneyin. Ayrıca, başka bir kişiden (iş arkadaşı) denemesini isteyin.

Kesebilir ve yapıştırabiliyorsanız destekleyin. Kullanıcılar genellikle iş akışlarını beklenmedik şekillerde ayarlarlar, engellememeye çalışırlar.

2
dbkk

Bunu iki şekilde yapabilirsiniz.

  1. Her birinde 6 basamaklı 30 giriş alanı oluşturun. Kullanıcı 6 hanenin tümünü yazdığında bir sonrakine atlar veya bir sonrakine geçmek için sekmeyi kullanır.

  2. 1 giriş alanı oluşturun ve "Yeni veri kümesi eklemek için sekme tuşunu kullan" veya benzeri bir metin ekleyin. Ve sonra kullanıcı sekme alanını her ittiğinde başka bir girdi alanı ekleyin.

1
ThomPete

Kullanıcı sisteminize girdiği sayıları nereden alır? Kopyalayıp yapıştırabilirler mi?

Bu mümkünse, Adobe/Microsoft gibi bazı uygulamalarda seri numaraları girmek için kopyalama/yapıştırma işlevinin nasıl çalıştığına bakın. Kullanıcı uzun bir sayı dizesini kopyalayabilir ve bir düşme hareketinde birkaç alana yapıştırabilir.

Aksi takdirde, ThomPete'nin cevabı oldukça iyi çalışır.

0
Tucker