2015-02-26 1 views
0

Как сделать код, заполняющий текстовое поле или в этом случае lblUserId.Text с идентификатором переменной? Я также хочу знать, как сделать это изменение идентификатора каждый раз, когда я выбираю другого пользователя из моего списка, которое я назвал lstEditUser.Заполнение текстовых полей и ярлыков с помощью определенных переменных из списка или списка <T>

QueryResult queryResult = null; 
String SOQL = ""; 
SOQL = "select Id, FirstName, LastName, UserRole.Name from user where isactive = true"; /// Pulls All active Users! 2/25/2015 8:30AM 
queryResult = Sfdcbinding.query(SOQL); 
string id = null; 
string firstName = null; 
string lastName = null; 
string role = null; 


if (queryResult.size > 0) 
{    
    for (int i = 0; i < queryResult.size; i++) 
    {      
     User user = (User)queryResult.records[i]; 
      id = user.Id; 
      firstName = user.FirstName; 
      lastName = user.LastName; 
      role = user.UserRole.Name; 
      string[] uSers = { id, firstName, lastName, role }; 
     listEdit.AddRange(uSers); 
     // adds Items in uSers to lstEditUser 
     lstEditUser.Items.Add(string.Format("{0} {1} {2} {3}", uSers));  
     lstDeleteUser.Items.Add(string.Format("{0} {1} {2}  {3}",uSers));  

     foreach (var li in listEdit) /// THIS IS WHAT I DONT KNOW HOW TO DO! 
     { 
      lblUserID.Text = li.Select<string>; /// I WANT IT TO POPULATE THIS LABEL W/ the Variable 'ID' based on the SelectedIndex or Selected Item in the lstEditUser or listEdit 
     } 

    } 
    MessageBox.Show("The query result has found " + queryResult.size + " users."); 

} 
else 
{ 
+0

или WinForms WPF? или asp.net? – Vlad

+1

В основном делайте то, что @ASh сказал и вне того, что когда-либо нужно в текстовом поле – Nick

+0

winforms, я думаю, в C# – JT082014

ответ

1

вам необходимо подписаться на lstEditUser.SelectedIndexChanged события и изменения lblUserID.Text соответственно

if (queryResult.size > 0) 
{    
    for (int i = 0; i < queryResult.size; i++) 
    {      
     User user = (User)queryResult.records[i]; 
      id = user.Id; 
      firstName = user.FirstName; 
      lastName = user.LastName; 
      role = user.UserRole.Name; 
      string[] uSers = { id, firstName, lastName, role }; 
     listEdit.AddRange(uSers); 
     // adds Items in uSers to lstEditUser 
     lstEditUser.Items.Add(string.Format("{0} {1} {2} {3}", uSers));  
     lstDeleteUser.Items.Add(string.Format("{0} {1} {2}  {3}",uSers));  
    } 
lstEditUser.SelectedIndexChanged += SelectNewUser; 
lstEditUser.SelectedIndex = 0; 
    MessageBox.Show("The query result has found " + queryResult.size + " users."); 

} 

private void SelectNewUser (object sender, EventArgs e) 
{ 
    int idx = lstEditUser.SelectedIndex; 
    if (idx < 0) 
     return; 
    lblUserID.Text = listEdit[idx*4]; 
} 
+0

@ JT082014, я не знаю вашего полного кода; я полагаю, listEdit выходит за пределы области в методе SelectNewUser, попробуйте 'lblUserID.Text = idx.ToString();' по крайней мере. 'вам нужно подписаться на lstEditUser.SelectedIndexChanged event "=" добавить обработчик к событию "=' lstEditUser .SelectedIndexChanged + = SelectNewUser; ' – ASh

+0

ОН МОЙ БОГ Я ЛЮБЛЮ ВАС !! Это, наконец, сработало, и теперь я могу двигаться дальше ... святой ад. Ты потрясающий чувак. – JT082014

+0

Последний вопрос для вас. Как я могу управлять [idx * 4], чтобы дать мне точно проиндексированную переменную, которая мне нужна для каждого текстового поля? – JT082014

Смежные вопросы