C# C如何在表单加载中重新运行代码
对于我正在编写的程序,我想询问一个名称,如果输入有数字或其他不需要的输入,则循环并再次执行 这是我当前的代码C# C如何在表单加载中重新运行代码,c#,string,validation,inputbox,form-load,C#,String,Validation,Inputbox,Form Load,对于我正在编写的程序,我想询问一个名称,如果输入有数字或其他不需要的输入,则循环并再次执行 这是我当前的代码 private void gameForm_Load(object sender, EventArgs e) { string value = "Type here"; if (globalVariables.InputBox("Name", "Please enter name", ref value) == DialogResult.OK) {
private void gameForm_Load(object sender, EventArgs e)
{
string value = "Type here";
if (globalVariables.InputBox("Name", "Please enter name", ref value) == DialogResult.OK)
{
name = value;
if (name.All(char.IsLetter))
{
lblName.Text = value;
}
else
{
}
}
}
如果存在无效输入,如何重新运行此代码?您可以使用while循环
创建一个新方法public void namecheck,然后将要运行的代码放在其中 然后,在你的页面加载中,你放入了姓名检查;调用该方法 因此,如果名称包含数字,则称为名称检查;又在另一个地方
public void NameCheck()
{
string value = "Type here";
if (globalVariables.InputBox("Name", "Please enter name", ref value) == DialogResult.OK)
{
name = value;
if (name.All(char.IsLetter))
{
lblName.Text = value;
}
else
{
NameCheck();
}
}
}
private void gameForm_Load(object sender, EventArgs e)
{
NameCheck();
}
使用do while循环。Form_加载不是实现该逻辑的好地方。在另一个表单/代码中使用循环,如果输入满足您的条件,则创建此表单。编写另一个名为EnterName的方法。将代码移动到该方法中。从加载事件处理程序调用它。从你需要它的地方给它打电话。很简单。我没有投反对票,我也不认为有理由投反对票,但我认为在这里做一个do-while循环会更好。我没有做,实际上我把它改成了这个,因为它工作得更好@Rahul@Ranga6669,评论不适合你;相当普遍。而且,我很清楚你们并没有投反对票,因为投反对票需要250个你们没有的名声。@Rahul troll algud。如果使用数字而不是字符串,该怎么做?这似乎是最简单的方法,但当我添加:reAsk时,它会给我一条红线,不起作用这是我没有的变量还是什么@可汗
private void gameForm_Load(object sender, EventArgs e)
{
reAsk:
string value = "Type here";
if (globalVariables.InputBox("Name", "Please enter name", ref value) == DialogResult.OK)
{
name = value;
if (name.All(char.IsLetter))
{
lblName.Text = value;
}
else
{
goto reAsk;
}
}
}
public void NameCheck()
{
string value = "Type here";
if (globalVariables.InputBox("Name", "Please enter name", ref value) == DialogResult.OK)
{
name = value;
if (name.All(char.IsLetter))
{
lblName.Text = value;
}
else
{
NameCheck();
}
}
}
private void gameForm_Load(object sender, EventArgs e)
{
NameCheck();
}