Hector
02-02-2012, 03:05
есть xml-файл:
<?xml version="1.0" encoding="UTF-8"?>
<users>
<user id="1">
<name>Den</name>
<pwd>456</pwd>
</user>
<user id="2">
<name>John</name>
<pwd>123</pwd>
</user>
</users>
это просто список учетных записей для авторизации.
существует форма, такого вида:
http://s017.radikal.ru/i411/1202/17/0f44294bc226t.jpg (http://radikal.ru/F/s017.radikal.ru/i411/1202/17/0f44294bc226.png.html)
собственно задача, при загрузке формы надо, чтобы имена юзеров загружались в ComboBox(слева), а в TextBox был пароль того юзера, что выбран в ComboBox и естественно при смене пользователя пароль тоже менялся
я пытался сделать так:
// при загрузке формы подключаю файл с учетками
private void manager_Load(object sender, EventArgs e)
{
usersList.Text="Список пользователей";
pwdCurUser.Text = "Пароль";
// загружает документ с аккаунтами
XmlDocument xd = new XmlDocument();
xd.Load("acc.xml");
// Создает и заполняет список по тегу "user"
XmlNodeList list = xd.GetElementsByTagName("user");
а дальше проблема
}
я не знаю, какими методами загрузить информацию в textbox и что бы она соответствовала combobox
при помощи поиска получился вариант:
// переменные для элементов
XmlElement[] name = new XmlElement[list.Count];
XmlElement[] pwd = new XmlElement[list.Count];
for (int i = 0; i < list.Count; i++)
{
name[i] = (XmlElement)xd.GetElementsByTagName("name")[i]; // имя в переменную
pwd[i] = (XmlElement)xd.GetElementsByTagName("pwd")[i]; // пароль в переменную
}
for (int i = 0; i < list.Count; i++)
{
usersList.Items.Add(name[i].InnerText);
pwdCurUser.Lines[i]=pwd[i].InnerText;
}
но он не работает, генерирует исключение, о выходе за границы индекса массива (идея была в SelectedIndexChanged при смене пользователя подставлять соответствующую строку из Lines[i], но видимо, я не так что-то понял)
<?xml version="1.0" encoding="UTF-8"?>
<users>
<user id="1">
<name>Den</name>
<pwd>456</pwd>
</user>
<user id="2">
<name>John</name>
<pwd>123</pwd>
</user>
</users>
это просто список учетных записей для авторизации.
существует форма, такого вида:
http://s017.radikal.ru/i411/1202/17/0f44294bc226t.jpg (http://radikal.ru/F/s017.radikal.ru/i411/1202/17/0f44294bc226.png.html)
собственно задача, при загрузке формы надо, чтобы имена юзеров загружались в ComboBox(слева), а в TextBox был пароль того юзера, что выбран в ComboBox и естественно при смене пользователя пароль тоже менялся
я пытался сделать так:
// при загрузке формы подключаю файл с учетками
private void manager_Load(object sender, EventArgs e)
{
usersList.Text="Список пользователей";
pwdCurUser.Text = "Пароль";
// загружает документ с аккаунтами
XmlDocument xd = new XmlDocument();
xd.Load("acc.xml");
// Создает и заполняет список по тегу "user"
XmlNodeList list = xd.GetElementsByTagName("user");
а дальше проблема
}
я не знаю, какими методами загрузить информацию в textbox и что бы она соответствовала combobox
при помощи поиска получился вариант:
// переменные для элементов
XmlElement[] name = new XmlElement[list.Count];
XmlElement[] pwd = new XmlElement[list.Count];
for (int i = 0; i < list.Count; i++)
{
name[i] = (XmlElement)xd.GetElementsByTagName("name")[i]; // имя в переменную
pwd[i] = (XmlElement)xd.GetElementsByTagName("pwd")[i]; // пароль в переменную
}
for (int i = 0; i < list.Count; i++)
{
usersList.Items.Add(name[i].InnerText);
pwdCurUser.Lines[i]=pwd[i].InnerText;
}
но он не работает, генерирует исключение, о выходе за границы индекса массива (идея была в SelectedIndexChanged при смене пользователя подставлять соответствующую строку из Lines[i], но видимо, я не так что-то понял)