I'm trying to make my login system reject a blank space. I've used a while loop to try and make it loop back but it wont work. Ive currently made it only 0-9 is accepted, but would rather any numbers are accepted and just blank spaces are looped back to login again after a message box. Any help would be appreciated, thanks
namespace OrderingSystem
{
public partial class Login : Form
{
public Login()
{
InitializeComponent();
}
private void button1_Click(object sender, EventArgs e)
{
Button num = (Button)sender;
if (num.Text == "1")
{
lblPin.Text = lblPin.Text num.Text;
}
}
private void button2_Click(object sender, EventArgs e)
{
Button num = (Button)sender;
if (num.Text == "2")
{
lblPin.Text = lblPin.Text num.Text;
}
}
private void lblPin_Click(object sender, EventArgs e)
{
}
private void button3_Click(object sender, EventArgs e)
{
Button num = (Button)sender;
if (num.Text == "3")
{
lblPin.Text = lblPin.Text num.Text;
}
}
private void button4_Click(object sender, EventArgs e)
{
Button num = (Button)sender;
if (num.Text == "4")
{
lblPin.Text = lblPin.Text num.Text;
}
}
private void button5_Click(object sender, EventArgs e)
{
Button num = (Button)sender;
if (num.Text == "5")
{
lblPin.Text = lblPin.Text num.Text;
}
}
private void button6_Click(object sender, EventArgs e)
{
Button num = (Button)sender;
if (num.Text == "6")
{
lblPin.Text = lblPin.Text num.Text;
}
}
private void button7_Click(object sender, EventArgs e)
{
Button num = (Button)sender;
if (num.Text == "7")
{
lblPin.Text = lblPin.Text num.Text;
}
}
private void button8_Click(object sender, EventArgs e)
{
Button num = (Button)sender;
if (num.Text == "8")
{
lblPin.Text = lblPin.Text num.Text;
}
}
private void button9_Click(object sender, EventArgs e)
{
Button num = (Button)sender;
if (num.Text == "9")
{
lblPin.Text = lblPin.Text num.Text;
}
}
private void button10_Click(object sender, EventArgs e)
{
Button num = (Button)sender;
if (num.Text == "0")
{
lblPin.Text = lblPin.Text num.Text;
}
}
public static string server = "";
private void btnEnter_Click(object sender, EventArgs e)
{
bool IncorrectPin = true;
while (IncorrectPin)
{
if (lblPin.Text == "1")
{
server = "Oli";
IncorrectPin = false;
}
else if (lblPin.Text == "0")
{
server = "Training";
IncorrectPin = false;
}
else if (lblPin.Text == "2" "3" "4" "5" "6" "7" "8" "9")
{
server = "Please Login";
IncorrectPin = false;
}
else
{
MessageBox.Show("Please enter a pin 0-9");
}
}
this.Hide();
TillView sistema = new TillView();
sistema.ShowDialog();
this.Close();
}
private void Login_Load(object sender, EventArgs e)
{
}
}
}
CodePudding user response:
This isn't perfect by any means, but should get the behavior you want. Don't see any need for a loop.
Per your comment
but would rather any numbers are accepted
I do no tests against numberEntered
. But you could check that against a range if you wanted.
private void btnEnter_Click(object sender, EventArgs e)
{
int numberEntered = -1;
//Presuming you only want integers
//This returns false if we can't convert the text to an int
if (!int.TryParse(lblPin.Text, out numberEntered))
{
MessageBox.Show("Please enter a pin using numbers only, no spaces");
return;
}
if (numberEntered == 1)
{
server = "Oli";
}
else if (numberEntered == 0)
{
server = "Training";
}
else
{
server = "Please Login";
}
this.Hide();
TillView sistema = new TillView();
sistema.ShowDialog();
this.Close();
}