Search code examples
c#winformsforms

Creating an Inputbox in C# using forms


Hello I'm currently creating an application which has the need to add server IP addresses to it, as there is no InputBox function in C# I'm trying to complete this using forms, but am very new to the language so not 100% as to what I should do.

At the moment I have my main form and a form which will act as my inputbox which wants to hide on load. Then when the user clicks on the add IP Address on the main form I wish to open up the secondary form and return the IP address entered into a text box on the secondary form.

So how would I go about doing this? Or is there any better ways to achieve similar results?


Solution

  • In your main form, add an event handler for the event Click of button Add Ip Address. In the event handler, do something similar as the code below:

    private string m_ipAddress;
    private void OnAddIPAddressClicked(object sender, EventArgs e)
    {
        using(SetIPAddressForm form = new SetIPAddressForm())
        {
            if (form.ShowDialog() == DialogResult.OK)
            {
                //Create a property in SetIPAddressForm to return the input of user.
                m_ipAddress = form.IPAddress;
            }
        }
    }
    

    Edit: Add another example to fit with manemawanna comment.

    private void btnAddServer_Click(object sender, EventArgs e)
    {
        string ipAdd;
        using(Input form = new Input())
        {
            if (form.ShowDialog() == DialogResult.OK)
            {
                //Create a property in SetIPAddressForm to return the input of user.
                ipAdd = form.IPAddress;
            }
        }
    }
    

    In your Input form, add a property:

    public class Input : Form
    {
        public string IPAddress
        {
            get { return txtInput.Text; }
        }
    
        private void btnInput_Click(object sender, EventArgs e)
        {
            //Do some validation for the text in txtInput to be sure the ip is well-formated.
    
            if(ip_well_formated)
            {
                this.DialogResult = DialogResult.OK;
                this.Close();
            }
        }
    }