在.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是一个非常实用的功能,它允许用户在程序运行时输入数据,类似于VB中的InputBox。然而,C#标准库并没有提供直接的InputBox控件,因此开发者需要自行创建模拟InputBox的功能。这个“c# 版...
### C#中的自定义InputBox实现 在C#编程中,开发者经常需要向用户收集输入数据,例如在登录界面获取用户名或密码,或者在表单中收集其他类型的用户信息。然而,与VB.NET中直接提供的`InputBox`功能不同,.NET ...
用C#语言写的一个通用的inputbox 实现类。 由于 C# 类库中没有 实用的inputbox 所以特意自行实现了一个,功能全面,可以接受文本,数字,日期,文件路径,甚至可以实现拖拽的操作等功能,是开发 winform 项目的得力...
在.NET框架中,C#作为一个强大的编程语言,虽然本身没有内置类似于Visual Basic的`InputBox`函数,但可以通过自定义类来实现类似的功能。`InputBox`通常用于在程序运行时向用户显示一个对话框,请求输入特定的信息。...
C#输入对话框,用于接受信息。 用法 string username = " user " ; // Get last username from registry or file InputBoxItem [] items = new InputBoxItem [] { new InputBoxItem ( " Username " , username ), ...
在C#编程中,虽然没有内置的InputBox类来实现简单的用户输入对话框,但可以通过两种方式实现类似的功能。一种是间接调用VB.NET的`Microsoft.VisualBasic.Interaction.InputBox`,另一种是自定义一个类似的控件。下面...
//C#在PC环境下使用的输入框InputBox // //用法:在资源管理器中添加引用Input.cs //InputBox.ShowInputBox( 标题字符串 , 说明字符串 , 输入框的默认值字符串 ) //有疑问联系:孙浩 QQ:43212170 Email:43212170@...
在C#编程环境中,开发人员经常需要与用户进行交互,其中一种常见的交互方式就是弹出输入对话框,让用户输入特定的信息。系统自带的`InputBox`函数虽然方便,但其功能相对有限,不能满足所有需求。针对这种情况,...
在VB(Visual Basic)编程中,`InputBox`函数是一个常用的功能,用于向用户显示一个对话框,等待用户输入信息。这个对话框有两个主要的按钮:确定和取消。标题“VB判断inputbox按了取消还是确定按钮”所涉及的知识点...
因此,如果想要在C#项目中实现类似的功能,我们需要自定义一个方法或类来模拟`InputBox`的行为。 首先,理解`InputBox`的基本功能:它会弹出一个带有标题、提示信息和文本输入框的对话框,用户可以在输入框内输入...
在C#编程中,自定义输入对话框是一个常见的需求,特别是在开发桌面应用程序时,我们可能希望用户能够在一个特定的窗口中输入数据,而不是系统默认的简单对话框。本资源提供了一个C#自定义输入对话框的示例,帮助...
C# 弹出输入框的多种方法 在 C# 中,弹出输入框是非常常见的交互方式,特别是在 WinForm 应用程序中。今天,我们将探讨多种方法来弹出输入框,包括使用委托、使用 VB 类库等。 1. 使用委托弹出输入框 在上面的...
在C#中,类通常被定义在`.cs`文件中,因此`InputBox`可能是一个自定义的类,继承自.NET Framework中的`System.Windows.Forms.TextBox`基类。 `System.Windows.Forms.TextBox`是.NET Framework提供的一个基础控件,...
C# 中操作API.doc C#里的InputBox.txt C#中调用Windows API的要点.txt 等等,里面有N多,自己慢慢看吧,提高编程水平的好教材.
2. 函数对照:VB6中的函数如MsgBox、InputBox等在C#中有不同的实现方式。例如,VB6的MsgBox相当于C#的MessageBox.Show,InputBox则需通过Console.ReadLine或窗体控件的Text属性来实现。了解这些函数的C#等价物是迁移...
在本文中,我们将深入探讨如何使用C#在Visual Studio 2017中实现一个类似于工业触摸屏的数字软键盘。这种键盘适用于工控机PC,可以替代传统的工业触摸屏,提供用户输入数字的能力。我们将重点讲解C#编程语言中的关键...
为了处理用户输入,源代码可能使用了`InputBox`控件来获取数值,并且通过`int.Parse()`或`double.TryParse()`方法将字符串转换为数字。这些方法会检查输入是否有效,无效时抛出异常或返回失败状态。 最后,为了实现...