помогите пжл кто чем сможет :) Есть форма авторизации
private void btnLogin_Click(object sender, EventArgs e)
{
if (comboLogin.Text == "Вася" && txtPass.Text == "1111")
{
this.Hide();
f1.lblRole.Text = comboLogin.Text;
f1.Show();
}
После авторизации, пользователь попадает на главную форму. Также на главной форме присутствует UserControl (там в основном DatagridView живет). Так вот, на главной форме есть label "lblRole", в свойствах выставлен Modifiers:public, Text:User None. В lblRole отображается кто вошел, тоисть Вася. А вот UserControl считывает вошедшего не Вася, а то что выставлено в свойствах lblRole главной формы, тисть UserNone.
Код в UserControl
private void b1_Load(object sender, EventArgs e)// L O A D
{
frmMain fm = new frmMain();
label1.Text = fm.lblRole.Text;
}
Вот собственно и сам вопрос, как получить кто вошел "Васю" а не свойства из lblRole в UserControl?
Форма получения имени и пароля называется FormLogin
кнопка Отмена
в свойствах этой формы определена как CancelButton
, код этой формы такой
public partial class FormLogin : Form
{
public FormLogin()
{
InitializeComponent();
}
public string Name { get; set; }
public string Password { get; set; }
private void buttonOk_Click(object sender, EventArgs e)
{
//считываем значения удаляя пробелы
Name = _textBoxName.Text.Trim();
Password = _textBoxPassword.Text.Trim();
//проверяем
if (String.IsNullOrEmpty(Name))
{
MessageBox.Show("Введите имя.", "Сообщение", MessageBoxButtons.OK, MessageBoxIcon.Information);
return;
}
if (String.IsNullOrEmpty(Password))
{
MessageBox.Show("Введите пароль.", "Сообщение", MessageBoxButtons.OK, MessageBoxIcon.Information);
return;
}
//отдаем результат
this.DialogResult = DialogResult.OK;
}
}
Главная форма программы имеет такой код
public partial class FormMain : Form
{
public FormMain()
{
InitializeComponent();
this.Load += FormMain_Load;
}
private void FormMain_Load(object sender, EventArgs e)
{
FormLogin formLogin = new FormLogin();
while (formLogin != null)
{
if (formLogin.ShowDialog() == DialogResult.OK)
{
if (CheckUser(formLogin.Name, formLogin.Password))
{
//присваиваем лейблу имя юзера
lblRole.Text = formLogin.Name;
//закрываем форму входа
formLogin.Close();
formLogin = null;
}
else
{
MessageBox.Show("Неверное имя или пароль!", "Ошибка",
MessageBoxButtons.OK, MessageBoxIcon.Error);
}
}
else
{
if (MessageBox.Show("Закрыть программу?", "Вопрос",
MessageBoxButtons.YesNo, MessageBoxIcon.Question) == DialogResult.Yes)
{
this.Close();
break;
}
}
}
}
private bool CheckUser(string name, string password)
{
return name.Equals("Вася") && password.Equals("123");
}
}
Bulson, спс за ответ и ход мыслей, но, наверно я чуток не правильно изъяснился. Вот как обстоят у меня дела. Код формы авторизации:
public partial class frmLogin : Form
{
frmMain f1 = new frmMain();
public frmLogin()
{
InitializeComponent();
Init_Data();
}
private void btnLogin_Click(object sender, EventArgs e)
{
if (comboLogin.Text == "Вася" && txtPass.Text == "1234")
{
this.Hide();
f1.lblRole.Text = comboLogin.Text;
f1.Show();
}
else
{
txtPass.Clear();
MessageBox.Show("##########");
}
Save_Data();
}
Тут из comboBox передается имя вошедшего на главную форму в лайбел lblRole. И на главной форме показывает "Вася". Так как я говорил ранее, что присутствует еще UserControl на главной форме, в UserControl живет DataGridView.
Код из UserControl
private void b1_Load(object sender, EventArgs e)// L O A D
{
this.addZayavkiTableAdapter.Fill(this.zayavkiDataSet.addZayavki);
frmMain fm = new frmMain();
if (fm.lblRole.Text == "Вася")
{
tsbSave.Enabled = false;
btnDelete.Enabled = false;
zayavkiDGV.ReadOnly = true;
bindingNavigatorAddNewItem.Enabled = false;
}
}
При отладке видно, что UserControl получил не пользователя "Вася", а то, что задано в свойствах lblRole на главной форме
Беда то заключается в том, что я не могу в UserControl'e получить имя, а получаю свойства лейбела, тоисть UserNone.
Виртуальный выделенный сервер (VDS) становится отличным выбором
Это моя попытка реализации, сортировки "пузырьком"Я только учусь программированию, потому не судите строго
Я хочу сделать DataGrid с сортировкой и добавлением Item в середину базы
Подскажите, как в случае попадания на исключения вернуться к повторному набиранию числа?
Зачем в методе cancellationtokenregister параметр object state и как его можно использовать? CancellationToken