I have a list of items that will be chosen in the program and then need to separate the quantities of the number into different amounts.

Here is an example: 10 pipes get separated into a set of 3 which are 2 + 5 + 3. These 2, 5, and 3 are sent to different locations, which is why we need to separate them.

I am using C# and trying to think of the best tool to use in a Form based application. I am using a NumericUpDown to choose how many locations (3 in example) are needed. The locations and specific quantity location numbers are known by the user when the program is run. How would be the best way to choose the quantities needed for each location? (2, 5, and 3 in example)

Here is an example of doing it with NumericUpDown's, which as you can see, can get very large. (Sometimes, there are 100 or more locations, which make this large and hard to see) Example

  • 5
    Just my two cents: In general, it is often a good idea to forget the implementation restriction (such as “implement it in C#”) for a while when designing UI. This is because if you think in terms of implementation, your idea is often restricted to what is readily available in the language/libraries/etc. Of course you have to come up with something implementable, but if you have a solid idea about what to implement, you can do much better. Nov 5, 2010 at 13:37
  • 1
    I'm not entirely clear on the task this interface is meant to support. So you have some quantity (q, in your example 10) that you want to split up into a certain number of sets (x, in your example 3); these sets need not be of equal size. Right? And you want a means of splitting q x ways using standard Windows UI widgets? Nov 5, 2010 at 13:50
  • @lucasrizoli Yes, I have a quantity, say 100 pipes, that needs to be put in a certain amount of locations, say 6, and each location needs a certain number of these pipes, ie 30, 20, 18, 12, 11, 9.
    – sange
    Nov 5, 2010 at 14:12
  • Oh...one thing to add--please consider not using those incremental fields. It's such a horrible windows UI invention. I've seen people not realize it's a text field and instead sit there clicking this super small triangle 30 times to update the field. I'd consider making them proper Drop Downs or plain text fields (perhaps with auto-lookup if windows apps can support it)
    – DA01
    Nov 5, 2010 at 17:33

2 Answers 2


Don't show all the zeroes. They don't add anything. Instead, show a dropdown box which has possible locations, and a disabled value field to the left with the remainder (e.g. 10 in this example). When the user picks a location, enable the value entry field to the left. The the user can now decrease the value for the first location (e.g. to 2). If so, add another dropdown box below the first dropwdown, and a new disabled value field below the first value field. Initialize the value to the remainder (e.g. 8 here). Again, enable the field when a location is picked.

So, for your example, the steps would be: Pick location A. Remainder shown is 10. Decrease value for A to 2. New row added. Pick location B. Remainder shown is 8 Decrease value for B to 5. New row added. Pick location C. Remainder shown is

  • That is a good idea. I like the 'remainder' idea.
    – DA01
    Nov 5, 2010 at 17:31

Quick response would be to have a drop down list to select number of locations, which then displays that number of text fields, where a person then enters the number of items for each.

  • 1
    That is at least implementable, but it violates the basic principle “Don’t force users to ask permission.” Nov 5, 2010 at 14:57
  • what are we asking users permission for?
    – DA01
    Nov 5, 2010 at 17:30
  • The phrase “Don’t force users to ask permission” is from the book “About Face” by Alan Cooper. The UI which you proposed forces users to select the number of locations before entering the real data (locations and numbers) and, if I remember correctly, a similar UI appears in the book as an example of poor UI design. I read the book more than ten years ago, and my apologies if my memory about this is not accurate. Nov 5, 2010 at 21:14

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge that you have read and understand our privacy policy and code of conduct.

Not the answer you're looking for? Browse other questions tagged or ask your own question.