C#의 InputBox
9897 단어 input
에 있습니다.NET Framework에는 VB의 InputBox 함수와 유사한 함수가 없습니다. 비록 VB에 대한 런타임 인용을 빌려 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이고, 키인포 파라미터는 탭 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
{
MessageBox.Show(" string.Empty");
}
}
방법 2
VB의 원래 함수 라이브러리는 부분적으로 마이크로소프트에 들어갔다.VisualBasic.Interaction에서 예를 들면 InputBox, MsgBox가 있습니다.
C#에서 InputBox를 사용하면 당연히 스스로 실현할 수 있지만 사실은Form일 뿐입니다. 저는 VB를 사용하는 것을 추천합니다.NET 안의, 헤헤, 사용법:
1. Microsoft 추가VisualBasic의 참조
2. string str = Microsoft.VisualBasic.Interaction.InputBox(힌트 문자, 대화상자 제목, 기본값, X 좌표, Y 좌표)
위의 X 좌표, Y 좌표는 -1 및 -1 값을 추출하여 화면 가운데 표시를 나타냅니다.
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
application ---- enter and save the file codeInput file name and content - input_content.html Receive content and save file and content - input_content01.jsp...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.