2009-11-02 2 views
0

У меня есть текстовое поле, которое будет заполнено переполненным запятой списком, который управляется элементом управления CheckedListBox.CheckedListBox, заполняющий текстовый элемент управления

Идея состоит в том, что, когда пользователь проверяет элементы в списке, они появятся в текстовом поле выше. У меня это работает до такой степени, что если я проверяю элемент, а затем нажимаю где-то еще внутри элемента управления, тогда текст заканчивается в текстовом поле. Я фиксирую событие click на моем контроле.

Если я использую событие item_checked, список в текстовом поле не обновляется, пока я не проверю второй элемент (в какой момент времени в текстовом поле отображается только первый элемент, который был отмечен.) Есть ли так или иначе вокруг этого? Чтение в MSDN, похоже, не показывает каких-либо других событий, которые будут применимы.

Я использую .net 1.1.

Это метод, который запускается в ловушке событий.

Private Sub FillCheckedTagsTextBox()

txtSelectedTags.Text = "" 

    Dim tagChecked As Object 

    For Each tagChecked In cltTagSelection.CheckedItems 

     txtSelectedTags.Text = txtSelectedTags.Text + tagChecked.ToString() + ", " 

    Next 

End Sub

Спасибо, Майк

ответ

0

Уч 1,1? Ваш работодатель пытается убить вас? Я бы постарался до 2,0, если мог.

Чтобы дважды проверить, когда вы говорите, что событие «Проверено» вы имеете в виду CheckedChanged? В 2.00 это отлично работает на рабочем столе. Это ошибка в версии 1.1?

Если это ошибка (сначала проверьте свой код, прежде чем принимать это решение! Затем проверьте его!), То я могу предложить попытаться захватить событие «Оставь», которое происходит, когда элемент управления теряет фокус. В противном случае вы можете привязать бизнес-объект к свойству .Checked, а затем запустить свое собственное событие, когда изменится ваше значение. НАПРИМЕР.

public class MyValues 
{ 
    private bool _check; 

    public bool Check 
    { 
     get 
     { 
      return _check; 
     } 
     set 
     { 
      if(_check != value) 
      { 
       _check = value; 
       // todo: raise event! 
      } 
     } 
    } 
} 
Смежные вопросы