#c#
#c#
Вопрос:
У меня есть два класса: FormOne
и 123
.
В FormOne
нем есть текстовые поля, метки и код кнопок. 123
Есть подключение к базе данных Erply, и я должен создать форму входа, в которую клиенты могут входить, поэтому мне нужно подключить текстовое поле с именем пользователя, поэтому, если клиент хочет войти в систему, программа отправляет информацию в Erply и отправляет обратно, если имя пользователя и пароль верны.
Итак, вкратце, как подключить параметр «имя пользователя» с текстовым полем?
class FormOne
{
private void textBox18_TextChanged(object sender, EventArgs e)
{
//username textbox
//I need code in here
}
}
class 123
{
async public void DoItJustDoItPleaseIBegYou()
{
string erplyPilv = "http://**clientcode**.erply.com/api/"; //"http://***.***.***.**:****/**/"
await VerifyUser(erplyPilv, "verifyUser", "request", "**username**", "**password**", "**clientcode**", "0.1");
}
public async Task VerifyUser(string url, string VerifyUser, string request, string username, string password, string clientcode, string version)
{
IEnumerable<KeyValuePair<string, string>> queries = new List<KeyValuePair<string, string>>()
{
new KeyValuePair<string, string>("request", VerifyUser),
new KeyValuePair<string, string>("username", username),
new KeyValuePair<string, string>("password", password),
new KeyValuePair<string, string>("clientCode", clientcode),
new KeyValuePair<string, string>("version", version),
};
}
}
Комментарии:
1.
how to connect parameter "username" with textbox?
.. эм, ты этого не делаешь… Куда и как вы звонитеDoItJustDoItPleaseIBegYou
?2.
async void
это действительно плохая идея. Ваш метод должен, по крайней мере, возвращать aTask
.3. @David Ты не ошибаешься, но я думаю, что сейчас это наименьшая из проблем OPs.
4. @ChrisPickford Я бы согласился, но всегда хорошо, если кто-то может указать на потенциальные проблемы, когда они их видят; в этом нет ничего плохого 🙂
Ответ №1:
Вам просто нужно передать значение из текстового поля в ваш код в другом классе
class FormOne
{
private void textBox18_TextChanged(object sender, EventArgs e)
{
123 OtherClass = new 123( );
123.DoItJustDoItPleaseIBegYou( textBox18.text );
}
}
class 123
{
async public void DoItJustDoItPleaseIBegYou(string UserName)
{
string erplyPilv = "http://**clientcode**.erply.com/api/"; //"http://***.***.***.**:****/**/"
await VerifyUser( erplyPilv, "verifyUser", "request", UserName, "**password**", "**clientcode**", "0.1" );
}
public async Task VerifyUser(string url, string VerifyUser, string request, string username, string password, string clientcode, string version)
{
IEnumerable<KeyValuePair<string, string>> queries = new List<KeyValuePair<string, string>>( )
{
new KeyValuePair<string, string>("request", VerifyUser),
new KeyValuePair<string, string>("username", username),
new KeyValuePair<string, string>("password", password),
new KeyValuePair<string, string>("clientCode", clientcode),
new KeyValuePair<string, string>("version", version),
};
}
Ответ №2:
Предполагая, что ваше текстовое поле называется textBox18 (каковым оно и является, исходя из имени вашей функции), тогда:
private void textBox18_TextChanged(object sender, EventArgs e)
{
var userName = textBox18.Text;
}
Комментарии:
1. Область действия этой переменной — это только метод, что, если OP не вызывает ничего, что использует этот параметр? ИМХО, было бы лучше иметь область на уровне класса…
2. Это отвечает на вопрос.