简体   繁体   中英

Set limit ListBox items by NumericUpDown C#

I'm developing a WinForms application in C# that by an ADD button adds elements to a listBox. What I need to do is set an items limit to this listBox with the NumericUpDown element while the app is running.

So the idea is, I run the app, I select the amount of elements with the NumericUpDown object, and automaticlly set the amount items size limit on my listBox, just allowing add more elements if I up the number with NumericUpDown object. Anyone knows how to do it?

Thank you

Assuming you have button1 , numericUpDown1 , listBox1 , and a TextBox named textBox1 to enter the text to add to the ListBox, following is a full example to demonstrate how you can achieve this. You may make any necessary changes to it to meet your requirements:

public partial class Form1 : Form
{
    public Form1()
    {
        InitializeComponent();

        numericUpDown1.Value = 3;
        numericUpDown1.Validating += NumericUpDown1_Validating;
        button1.Click += Button1_Click;
    }

    private void NumericUpDown1_Validating(object sender, CancelEventArgs e)
    {
        if (listBox1.Items.Count > numericUpDown1.Value)
        {
            MessageBox.Show(
                $"The list already has more than {numericUpDown1.Value} items.");
            e.Cancel = true;
        }
    }

    private void Button1_Click(object sender, EventArgs e)
    {
        if (listBox1.Items.Count < numericUpDown1.Value)
        {
            listBox1.Items.Add(textBox1.Text);
        }
        else
        {
            MessageBox.Show(
                $"The list has reached the limit of {numericUpDown1.Value} items.");
        }
    }
}

Result:

演示

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM