c#弹窗输入字符串并获取到输入内容的一种方法

wwdwwd / 2025-01-15 / 原文

1,C#没有输入框可供直接使用,我们除了可以通过使用VB中库文件自带的Inputbox方法调用以为,可以自编一个;下面是完整的InputDialog类,可以直接或者稍作修改使用:

  public static class InputDialog
        {
            // 显示输入对话框并返回用户输入的内容
            public static string ShowDialog()
            {
                // 创建一个新的Form作为输入对话框
                Form inputForm = new Form
                {
                    Width = 300,
                    Height = 100,
                    Text = "输入对话框",
                    MaximizeBox=false,
                    MinimizeBox=false,
                    FormBorderStyle= FormBorderStyle.FixedSingle,
                    StartPosition= FormStartPosition.CenterScreen

                };

                // 创建一个TextBox供用户输入内容
                TextBox inputTextBox = new TextBox
                {
                    Location = new System.Drawing.Point(10, 10),
                    Width = 260
                };

                // 创建一个按钮,点击后关闭对话框并返回输入内容
                Button okButton = new Button
                {
                    Text = "确定",
                    Location = new System.Drawing.Point(90, 35)
                };

                // 定义一个字符串变量来存储用户输入的内容
                string userInput = "";

                // 为按钮的点击事件添加事件处理程序
                okButton.Click += (sender, e) =>
                {
                    // 获取用户输入的内容
                    userInput = inputTextBox.Text;

                    // 关闭对话框
                    inputForm.Close();
                };

                // 将TextBox和Button添加到Form中
                inputForm.Controls.Add(inputTextBox);
                inputForm.Controls.Add(okButton);

                // 显示对话框并等待用户输入
                inputForm.ShowDialog();

                // 返回用户输入的内容
                return userInput;
            }



            public static DialogResult Show(out string strText)
            {
                string strTemp = string.Empty;

                FrmInputDialog inputDialog = new FrmInputDialog();
                inputDialog.TextHandler = (str) => { strTemp = str; };

                DialogResult result = inputDialog.ShowDialog();
                strText = strTemp;

                return result;
            }
    }

2,调用方法:

            string strcontent = InputDialog.ShowDialog();
            MessageBox.Show($"输入值:==={strcontent}");