迹忆客 专注技术分享

当前位置:主页 > 学无止境 > 编程语言 >

在 C# 中创建输入对话框

作者:迹忆客 最近更新:2024/02/01 浏览次数:

本教程将演示如何使用与 VB.Net 中类似的两种不同方法在 C# 中创建输入对话框。

输入对话框是一个弹出窗口,它显示消息提示并请求用户输入。然后可以在代码中使用输入。

C# 中没有 VB.NET 的输入对话框版本,因此你可以使用两种方法之一。第一个也是最简单的方法是使用 Microsoft.VisualBasic.Interaction 中提供的 InputBox。另一种方法是使用 System.Windows.FormsSystem.Drawing 创建你自己的自定义对话框。


使用 Microsoft Visual Basic 的输入对话框

由于 C# 没有像 VB.NET 中那样的输入对话框版本,因此你可以添加对 Microsoft.VisualBasic 的引用并使用它的 InputBox

要使用 Microsoft.VisualBasic,你必须首先按照以下步骤将其添加到项目的引用中。

  • 导航到解决方案资源管理器
  • 右键单击​​引用
  • 点击添加引用
  • 单击左侧的 Assemblies 选项卡
  • 找到 Microsoft.VisualBasic.dll 文件并点击 OK

成功添加引用后,你可以在代码中使用其 using 语句。

using Microsoft.VisualBasic;

输入框本身是通过提供以下参数创建的。

  • 提示:要在窗口中显示的消息。这是唯一需要传递的强制参数。
  • 标题:要显示的窗口标题
  • 默认值:输入文本框的默认值
  • X 坐标:输入框起始位置的 X 坐标
  • Y 坐标:输入框起始位置的 Y 坐标
string input = Interaction.InputBox("Prompt", "Title", "Default", 10, 10);

调用此输入框后,程序将等待响应,然后继续执行其余代码。

例子:

using System;
using Microsoft.VisualBasic;

namespace VisualBasic_Example {
  class Program {
    static void Main(string[] args) {
      // Create the input dialog box with the parameters below
      string input =
          Interaction.InputBox("What is at the end of the rainbow?", "Riddle", "...", 10, 10);

      // After the user has provided input, print to the console
      Console.WriteLine(input);
      Console.ReadLine();
    }
  }
}

在上面的示例中,我们创建了一个带有谜语提示的输入框,出现在屏幕的左上角。提交输入后,将值打印到控制台。

输出:

The letter w

C# 中使用 Windows 窗体的自定义输入对话框

创建输入对话框的另一个选项是创建你自己的自定义输入对话框。创建输入对话框的一个好处是它允许你自定义窗口,而不是第一种方法。要使用以下示例中的代码,你必须首先使用以下步骤添加对 System.Windows.Forms.dllSystem.Drawing.dll 的引用。

  • 导航到解决方案资源管理器
  • 右键单击引用
  • 点击添加引用
  • 单击左侧的 Assemblies 选项卡
  • 找到 Microsoft.VisualBasic.dllSystem.Drawing.dll 文件并单击 OK

成功添加引用后,你可以在代码中使用它们的 using 语句。

例子:

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

namespace CustomDialog_Example {
  class Program {
    static void Main(string[] args) {
      // Initialize the input variable which will be referenced by the custom input dialog box
      string input = "...";
      // Display the custom input dialog box with the following prompt, window title, and dimensions
      ShowInputDialogBox(ref input, "What is at the end of the rainbow?", "Riddle", 300, 200);

      // Print the input provided by the user
      Console.WriteLine(input);

      Console.ReadLine();
    }

    private static DialogResult ShowInputDialogBox(ref string input, string prompt,
                                                   string title = "Title", int width = 300,
                                                   int height = 200) {
      // This function creates the custom input dialog box by individually creating the different
      // window elements and adding them to the dialog box

      // Specify the size of the window using the parameters passed
      Size size = new Size(width, height);
      // Create a new form using a System.Windows Form
      Form inputBox = new Form();

      inputBox.FormBorderStyle = FormBorderStyle.FixedDialog;
      inputBox.ClientSize = size;
      // Set the window title using the parameter passed
      inputBox.Text = title;

      // Create a new label to hold the prompt
      Label label = new Label();
      label.Text = prompt;
      label.Location = new Point(5, 5);
      label.Width = size.Width - 10;
      inputBox.Controls.Add(label);

      // Create a textbox to accept the user's input
      TextBox textBox = new TextBox();
      textBox.Size = new Size(size.Width - 10, 23);
      textBox.Location = new Point(5, label.Location.Y + 20);
      textBox.Text = input;
      inputBox.Controls.Add(textBox);

      // Create an OK Button
      Button okButton = new Button();
      okButton.DialogResult = DialogResult.OK;
      okButton.Name = "okButton";
      okButton.Size = new Size(75, 23);
      okButton.Text = "&OK";
      okButton.Location = new Point(size.Width - 80 - 80, size.Height - 30);
      inputBox.Controls.Add(okButton);

      // Create a Cancel Button
      Button cancelButton = new Button();
      cancelButton.DialogResult = DialogResult.Cancel;
      cancelButton.Name = "cancelButton";
      cancelButton.Size = new Size(75, 23);
      cancelButton.Text = "&Cancel";
      cancelButton.Location = new Point(size.Width - 80, size.Height - 30);
      inputBox.Controls.Add(cancelButton);

      // Set the input box's buttons to the created OK and Cancel Buttons respectively so the window
      // appropriately behaves with the button clicks
      inputBox.AcceptButton = okButton;
      inputBox.CancelButton = cancelButton;

      // Show the window dialog box
      DialogResult result = inputBox.ShowDialog();
      input = textBox.Text;

      // After input has been submitted, return the input value
      return result;
    }
  }
}

在上面的示例中,我们创建了一个自定义函数,该函数使用 System.Windows.Forms 中的元素并将它们单独添加到对话框中。虽然你可以对不同的元素进行硬编码,但你也可以在函数中添加参数并引用它们,以获得尽可能多的自定义。在构建并显示对话框后,程序等待用户提供输入以在控制台中打印它。

输出:

the letter w

转载请发邮件至 1244347461@qq.com 进行申请,经作者同意之后,转载请以链接形式注明出处

本文地址:

相关文章

在 C# 中的接口中实现属性

发布时间:2024/02/01 浏览次数:100 分类:编程语言

本文介绍如何在 C# 中的接口中实现属性。C# 中的接口可以有许多不同的属性,以及指定我们应该如何在其中声明属性可用性的访问修饰符。该接口通常充当不同成员和对象的默认实现。

在 C# 中注释文本块

发布时间:2024/02/01 浏览次数:192 分类:编程语言

本教程教你如何在 C# 中注释一段文本或代码。作为注解的注释处于更高的抽象级别,编译器在编译 C# 代码时会忽略它。

C# 中的局部类

发布时间:2024/02/01 浏览次数:61 分类:编程语言

我们可以使用 C# 中的局部类将一个类的定义拆分到多个文件中。C# 中的局部类 partial 关键字在 C# 中指定了部分类。

C# 中的结构体和类之间的区别

发布时间:2024/02/01 浏览次数:175 分类:编程语言

结构体是驻留在堆栈中的值类型变量,而类是驻留在堆中的引用类型变量。在本教程中,我们将讨论 C# 中的结构体和类之间的区别和相似之处。

在 C# 中销毁对象

发布时间:2024/02/01 浏览次数:94 分类:编程语言

在 C# 中,我们可以通过给一个对象赋值为空来销毁它。通过在 C# 中分配 null 值来销毁类对象

在 C# 中复制一个对象

发布时间:2024/02/01 浏览次数:120 分类:编程语言

有两种主要方法可用于在 C# 中创建对象的单独副本,MemberWiseClone()函数和参数化构造函数方法。在 C# 中使用 MemberWiseClone() 方法复制对象

C# 中的 Java final 等效关键字

发布时间:2024/02/01 浏览次数:59 分类:编程语言

C# 中有两个不同的关键字,它们等效于 Java 中的 final 关键字,用于类和函数的 sealed 关键字以及用于字段的 readonly 关键字。本教程将讨论与 Java 中的 final 关键字等效的 C# 关键字。Java final 关键

扫一扫阅读全部技术教程

社交账号
  • https://www.github.com/onmpw
  • qq:1244347461

最新推荐

教程更新

热门标签

扫码一下
查看教程更方便