9
votes

Créer une entréebox dans C # à l'aide de formulaires

Bonjour Je crée actuellement une application qui a la nécessité d'ajouter des adresses IP du serveur, car il n'y a pas de fonction INPUTBOX dans C #, j'essaie de compléter cette utilisation en utilisant des formulaires, mais je suis très nouveau dans la langue, donc pas 100% de ce que je devrais faire.

Pour le moment, j'ai ma forme principale et une forme qui agira comme mon INPUTBOX qui veut cacher sur la charge. Ensuite, lorsque l'utilisateur clique sur l'adresse IP ajouter sur la forme principale, je souhaite ouvrir la forme secondaire et renvoyer l'adresse IP entrée dans une zone de texte sur la forme secondaire.

Alors, comment voudrais-je y aller? Ou existe-t-il de meilleurs moyens d'obtenir des résultats similaires?


0 commentaires

6 Réponses :


1
votes

Ajouter un bouton dans la forme principale.

Créez un formulaire avec TextBox pour l'adresse IP. (laissez-le dire ipaddressform)

Ajouter Cliquez sur le gestionnaire d'événements pour ce bouton.

Dans le gestionnaire d'événements, créez une instance de iPaddressform et appelez la méthode showDioriog d'iPaddressform.

stocker l'adresse IP dans une variable de classe.

Si le résultat de ShowDialog est correct, lisez la variable de la classe de la forme principale (la manière la plus simple consiste à déclarer le champ comme public)


0 commentaires

10
votes

Dans votre formulaire principal, ajoutez un gestionnaire d'événements pour l'événement Cliquez sur de bouton Ajouter une adresse IP. Dans le gestionnaire d'événements, faites quelque chose de similaire que le code ci-dessous: xxx

modifier : ajoutez un autre exemple pour s'adapter à manemawanna commentaire. < / p> xxx

dans votre formulaire d'entrée, ajoutez une propriété: xxx


4 commentaires

Vous devriez mieux utiliser l'instruction utilisant (). :)


Eh bien, nous apprenons des choses tous les jours :), j'ai appliqué à l'aide de mots-clés dans mon code sur tout (stylo, sqlconnection, flux, etc.) mais je ne l'ai jamais fait sur une forme. Probablement parce que je n'ai jamais vu un exemple en l'appliquant ... même dans un livre.


C'est ce que j'ai actuellement un vide privé btnaddserver_click (expéditeur d'objet, evenargs e) {string ipadd; } Not Alot Je sais que mon autre formulaire que je souhaite utiliser est nommé entrée, il dispose d'une zone de texte appelée Txtinput et un bouton appelé BTNInput. Alors, comment cela correspondrait-il à ce que vous avez donné comme réponse? Désolé mais je suis nouveau à tout cela.


Cela m'a été une grande aide, je cherchais des contrôles tiers, mais cela était bien préférable de me mettre en œuvre.



1
votes

On dirait que Francis a la bonne idée qui est ce que j'aurais suggéré. Cependant, juste pour ajouter à cela, je vous suggérerais probablement d'utiliser une boîte de texte masquée au lieu d'une zone de texte de base et d'ajouter le format d'adresse IP en tant que masque.


0 commentaires

1
votes

Vous pouvez simplement utiliser la VB INPUTBOX ...

  1. Ajouter une référence à Microsoft.VisualBasic
  2. String Résultat = microsoft.visualbasic.interaction.inputbox ("Titre", "Texte", "", 10, 20);

0 commentaires

2
votes

J'ai besoin de cette fonctionnalité aussi. Voici mon code; Il est des auto-centres et des tailles pour s'adapter à l'invite. La méthode publique crée une boîte de dialogue et renvoie l'entrée de l'utilisateur, ou null code> si elles annulent.

using System;
using System.Drawing;
using System.Windows.Forms;

namespace Utilities
{
public class InputBox
    {
    #region Interface
    public static string  ShowDialog(string prompt, string title, string defaultValue = null, int? xPos = null, int? yPos = null)
        {
        InputBoxDialog  form   = new InputBoxDialog(prompt, title, defaultValue, xPos, yPos);
        DialogResult    result = form.ShowDialog();
        if (result == DialogResult.Cancel)
            return null;
        else
            return form.Value;
        }
    #endregion

    #region Auxiliary class
    private class InputBoxDialog: Form
        {
        public string  Value  { get { return _txtInput.Text; } }

        private Label    _lblPrompt;
        private TextBox  _txtInput;
        private Button   _btnOk;
        private Button   _btnCancel;

        #region Constructor
        public InputBoxDialog(string prompt, string title, string defaultValue = null, int? xPos = null, int? yPos = null)
            {
            if (xPos == null && yPos == null)
                {
                StartPosition = FormStartPosition.CenterParent;
                }
            else
                {
                StartPosition = FormStartPosition.Manual;

                if (xPos == null)  xPos = (Screen.PrimaryScreen.WorkingArea.Width  - Width ) >> 1;
                if (yPos == null)  yPos = (Screen.PrimaryScreen.WorkingArea.Height - Height) >> 1;

                Location = new Point(xPos.Value, yPos.Value);
                }

            InitializeComponent();

            if (title == null)  title = Application.ProductName;
            Text = title;

            _lblPrompt.Text = prompt;
            Graphics  graphics = CreateGraphics();
            _lblPrompt.Size = graphics.MeasureString(prompt, _lblPrompt.Font).ToSize();
            int  promptWidth  = _lblPrompt.Size.Width;
            int  promptHeight = _lblPrompt.Size.Height;

            _txtInput.Location  = new Point(8, 30 + promptHeight);
            int  inputWidth = promptWidth < 206 ? 206 : promptWidth;
            _txtInput.Size      = new Size(inputWidth, 21);
            _txtInput.Text      = defaultValue;
            _txtInput.SelectAll();
            _txtInput.Focus();

            Height = 125 + promptHeight;
            Width  = inputWidth + 23;

            _btnOk.Location = new Point(8, 60 + promptHeight);
            _btnOk.Size     = new Size(100, 26);

            _btnCancel.Location = new Point(114, 60 + promptHeight);
            _btnCancel.Size     = new Size(100, 26);

            return;
            }
        #endregion

        #region Methods
        protected void  InitializeComponent()
            {
            _lblPrompt           = new Label();
            _lblPrompt.Location  = new Point(12, 9);
            _lblPrompt.TabIndex  = 0;
            _lblPrompt.BackColor = Color.Transparent;

            _txtInput          = new TextBox();
            _txtInput.Size     = new Size(156, 20);
            _txtInput.TabIndex = 1;

            _btnOk              = new Button();
            _btnOk.TabIndex     = 2;
            _btnOk.Size         = new Size(75, 26);
            _btnOk.Text         = "&OK";
            _btnOk.DialogResult = DialogResult.OK;

            _btnCancel              = new Button();
            _btnCancel.TabIndex     = 3;
            _btnCancel.Size         = new Size(75, 26);
            _btnCancel.Text         = "&Cancel";
            _btnCancel.DialogResult = DialogResult.Cancel;

            AcceptButton = _btnOk;
            CancelButton = _btnCancel;

            Controls.Add(_lblPrompt);
            Controls.Add(_txtInput);
            Controls.Add(_btnOk);
            Controls.Add(_btnCancel);

            FormBorderStyle = FormBorderStyle.FixedDialog;
            MaximizeBox = false;
            MinimizeBox = false;

            return;
            }
        #endregion
        }
    #endregion
    }
}


0 commentaires

0
votes

Vous pouvez créer votre message spécialbox. J'ai créé ma messagerie-boîte pour obtenir des informations de base de données comme ci-dessous. Et lorsque la messageriebox Ouvrir, l'application STOP pendant vous, cliquez sur n'importe quel bouton de la messagerie associée.

 string[] strPopUp = efexBox.ShowDialog().Split('?');


0 commentaires