`

C#里的InputBox

    博客分类:
  • C#
阅读更多
在.NET Framework中并没有类似VB中的InputBox函数,虽然可以借助对VB 的Runtime引用,以在VB除外的.NET程序中使用VB的InputBox,但是为什么不自己写一个类实现类似的功能呢?

下面一个类实现了类似的InputBox函数的功能:

using System;

using System.Windows.Forms;

 

namespace Input

{

     /// <summary>

     /// clsInputBox 的摘要说明。

     /// </summary>

     public class InputBox : System.Windows.Forms.Form 

     {

         private System.Windows.Forms.TextBox txtData;

         private System.Windows.Forms.Label lblInfo; 

         private System.ComponentModel.Container components = null; 

 

         private InputBox() 

         { 

              InitializeComponent(); 

         } 

 

         protected override void Dispose( bool disposing ) 

         { 

              if( disposing ) 

              { 

                   if(components != null) 

                   { 

                       components.Dispose(); 

                   } 

              } 

              base.Dispose( disposing ); 

         } 

 

         private void InitializeComponent() 

         { 

              this.txtData = new System.Windows.Forms.TextBox();

              this.lblInfo = new System.Windows.Forms.Label();

              this.SuspendLayout();

              // 

              // txtData

              // 

              this.txtData.Font = new System.Drawing.Font("宋体", 10.5F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((System.Byte)(134)));

              this.txtData.Location = new System.Drawing.Point(19, 8);

              this.txtData.Name = "txtData";

              this.txtData.Size = new System.Drawing.Size(317, 23);

              this.txtData.TabIndex = 0;

              this.txtData.Text = "";

              this.txtData.KeyDown += new System.Windows.Forms.KeyEventHandler(this.txtData_KeyDown);

              // 

              // lblInfo

              // 

              this.lblInfo.BackColor = System.Drawing.SystemColors.Info;

              this.lblInfo.BorderStyle = System.Windows.Forms.BorderStyle.Fixed3D;

              this.lblInfo.FlatStyle = System.Windows.Forms.FlatStyle.System;

              this.lblInfo.Font = new System.Drawing.Font("宋体", 9F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((System.Byte)(134)));

              this.lblInfo.ForeColor = System.Drawing.Color.Gray;

              this.lblInfo.Location = new System.Drawing.Point(19, 32);

              this.lblInfo.Name = "lblInfo";

              this.lblInfo.Size = new System.Drawing.Size(317, 16);

              this.lblInfo.TabIndex = 1;

              this.lblInfo.Text = "[Enter]确认 | [Esc]取消";

              // 

              // InputBox

              // 

              this.AutoScaleBaseSize = new System.Drawing.Size(6, 14);

              this.ClientSize = new System.Drawing.Size(350, 48);

              this.ControlBox = false;

              this.Controls.Add(this.lblInfo);

              this.Controls.Add(this.txtData);

              this.FormBorderStyle = System.Windows.Forms.FormBorderStyle.FixedDialog;

              this.Name = "InputBox";

              this.Text = "InputBox";

              this.ResumeLayout(false);

 

         } 

         //对键盘进行响应

         private void txtData_KeyDown(object sender, System.Windows.Forms.KeyEventArgs e) 

         { 

              if(e.KeyCode == Keys.Enter) 

              {

                   this.Close(); 

              }

              else if (e.KeyCode == Keys.Escape )

              {

                   txtData.Text = string.Empty ;

                   this.Close();

              }

         } 

         //显示InputBox

         public static string ShowInputBox(string Title,string keyInfo) 

         { 

              InputBox inputbox = new InputBox(); 

              inputbox.Text =Title;

              if (keyInfo.Trim() != string.Empty )

                   inputbox.lblInfo.Text =keyInfo;

              inputbox.ShowDialog(); 

              return inputbox.txtData.Text; 

         } 

         

     } 

}

直接调用该类的静态方法ShowInputBox就可以,其中Title参数是对话框的Text,keyInfo参数是标签lblInfo(可以显示自定义的信息)的Text。具体调用如下:

private void button_Click(object sender, System.EventArgs e)

         {

              //Microsoft.VisualBasic.Interaction.InputBox(  "type  your  name  ",  "input  ","",0,0); 

              //可以将你要显示的文本信息代替下面的string.Empty。

              string inMsg= Input.InputBox.ShowInputBox("输入信息",string.Empty );

              //对用户的输入信息进行检查

              if (inMsg.Trim() != string.Empty )

              {

                   MessageBox.Show(inMsg);

              }

              else if

              {

                   MessageBox.Show(“输入为string.Empty”);

               }

         }

分享到:
评论

相关推荐

    c#中inputbox密码框

    c# inputbox 密码框 c# inputbox 密码框

    c# 版InputBox

    在C#编程环境中,InputBox是一个非常实用的功能,它允许用户在程序运行时输入数据,类似于VB中的InputBox。然而,C#标准库并没有提供直接的InputBox控件,因此开发者需要自行创建模拟InputBox的功能。这个“c# 版...

    C#中的InputBox

    ### C#中的自定义InputBox实现 在C#编程中,开发者经常需要向用户收集输入数据,例如在登录界面获取用户名或密码,或者在表单中收集其他类型的用户信息。然而,与VB.NET中直接提供的`InputBox`功能不同,.NET ...

    C# 通用的 InputBox 实现类

    用C#语言写的一个通用的inputbox 实现类。 由于 C# 类库中没有 实用的inputbox 所以特意自行实现了一个,功能全面,可以接受文本,数字,日期,文件路径,甚至可以实现拖拽的操作等功能,是开发 winform 项目的得力...

    C# InputBox 类

    在.NET框架中,C#作为一个强大的编程语言,虽然本身没有内置类似于Visual Basic的`InputBox`函数,但可以通过自定义类来实现类似的功能。`InputBox`通常用于在程序运行时向用户显示一个对话框,请求输入特定的信息。...

    InputBox:C#输入对话框,用于接受信息

    C#输入对话框,用于接受信息。 用法 string username = " user " ; // Get last username from registry or file InputBoxItem [] items = new InputBoxItem [] { new InputBoxItem ( " Username " , username ), ...

    C#中调用VB中Inputbox类的实现方法

    在C#编程中,虽然没有内置的InputBox类来实现简单的用户输入对话框,但可以通过两种方式实现类似的功能。一种是间接调用VB.NET的`Microsoft.VisualBasic.Interaction.InputBox`,另一种是自定义一个类似的控件。下面...

    C#中的输入框

    //C#在PC环境下使用的输入框InputBox // //用法:在资源管理器中添加引用Input.cs //InputBox.ShowInputBox( 标题字符串 , 说明字符串 , 输入框的默认值字符串 ) //有疑问联系:孙浩 QQ:43212170 Email:43212170@...

    通过修改VCL源码实现自定义输入对话框.rar_c# inputbox

    在C#编程环境中,开发人员经常需要与用户进行交互,其中一种常见的交互方式就是弹出输入对话框,让用户输入特定的信息。系统自带的`InputBox`函数虽然方便,但其功能相对有限,不能满足所有需求。针对这种情况,...

    VB判断inputbox按了取消还是确定按钮

    在VB(Visual Basic)编程中,`InputBox`函数是一个常用的功能,用于向用户显示一个对话框,等待用户输入信息。这个对话框有两个主要的按钮:确定和取消。标题“VB判断inputbox按了取消还是确定按钮”所涉及的知识点...

    在.NET Framework中并没有类似VB中的InputBox函数

    因此,如果想要在C#项目中实现类似的功能,我们需要自定义一个方法或类来模拟`InputBox`的行为。 首先,理解`InputBox`的基本功能:它会弹出一个带有标题、提示信息和文本输入框的对话框,用户可以在输入框内输入...

    C# 自定义输入对话框。需要的请带走。技术不复杂,对您有参考意义就是我最大的贡献。

    在C#编程中,自定义输入对话框是一个常见的需求,特别是在开发桌面应用程序时,我们可能希望用户能够在一个特定的窗口中输入数据,而不是系统默认的简单对话框。本资源提供了一个C#自定义输入对话框的示例,帮助...

    C#弹出输入框

    C# 弹出输入框的多种方法 在 C# 中,弹出输入框是非常常见的交互方式,特别是在 WinForm 应用程序中。今天,我们将探讨多种方法来弹出输入框,包括使用委托、使用 VB 类库等。 1. 使用委托弹出输入框 在上面的...

    c#自定义文本框

    在C#中,类通常被定义在`.cs`文件中,因此`InputBox`可能是一个自定义的类,继承自.NET Framework中的`System.Windows.Forms.TextBox`基类。 `System.Windows.Forms.TextBox`是.NET Framework提供的一个基础控件,...

    C#技术资料之常用的代码

    C# 中操作API.doc C#里的InputBox.txt C#中调用Windows API的要点.txt 等等,里面有N多,自己慢慢看吧,提高编程水平的好教材.

    vb6到c#迁移程序对照表PDF

    2. 函数对照:VB6中的函数如MsgBox、InputBox等在C#中有不同的实现方式。例如,VB6的MsgBox相当于C#的MessageBox.Show,InputBox则需通过Console.ReadLine或窗体控件的Text属性来实现。了解这些函数的C#等价物是迁移...

    VS2017中C#实现类似工业触摸屏的数字软键盘

    在本文中,我们将深入探讨如何使用C#在Visual Studio 2017中实现一个类似于工业触摸屏的数字软键盘。这种键盘适用于工控机PC,可以替代传统的工业触摸屏,提供用户输入数字的能力。我们将重点讲解C#编程语言中的关键...

    C#328-C#多功能计算器,源代码

    为了处理用户输入,源代码可能使用了`InputBox`控件来获取数值,并且通过`int.Parse()`或`double.TryParse()`方法将字符串转换为数字。这些方法会检查输入是否有效,无效时抛出异常或返回失败状态。 最后,为了实现...

Global site tag (gtag.js) - Google Analytics