我想创建一个简单的输入对话框。所以我添加了Windows来自我的应用程序,并在该窗口中放置了一个标签,一个文本框和一个按钮;现在,使用构造函数可以很容易地使用预定义的值填充我的控件的所需属性,并使用result
返回输入的值;将用户定义的方法传递给构造函数
public partial class GeneralInputForm : Form
{
public string result = "";
public GeneralInputForm(string label, string defaultValue = "")
{
InitializeComponent();
label1.Text = label;
textBox1.Text = defaultValue;
}
private void button1_Click(object sender, EventArgs e)
{
result = textBox1.Text;
Close();
}
}
现在创建一个from和使用所需值填充参数的实例;
GeneralInputForm formInput = new GeneralInputForm("Please enter your age:");
formInput.ShowDialog();
//formInput.result holds the value
我的问题引发了这里;如果我想检查用户在GeneralInputForm本身的文本框中输入的值的有效性(而不是稍后通过检查result
字段来实例化表单时)该怎么办?我的意思是在C#中有这样的功能(可能是委托),以便用户自己可以定义一个方法并将其作为构造函数的参数之一传递,该方法将检查值,以确保其成功被解析为int
或float
或string
?
我不想在我的构造函数中添加一个名为variableType
的丑陋字符串参数,并要求用户说出他是否需要'int'或'float'或'string'或其他什么,然后通过检查值的variableType
,写了不同的陈述,以确保输入的文本可以被成功解析为int或浮动或字符串(这将是一个丑陋的和有限的解决方案)
由于您已经将代表视为一种选择,您为什么不最终使用它们? – Servy
我不明白,如果你期望被调用的表单执行任何转换或不。看起来你不会要求这个工作被被调用的表单执行,但是你想要一个GenericInputForm调用回来检查输入有效性的委托。我错了吗? – Steve
你已经得到了你的答案,但是你没有给出反馈。 –