В списке не отображаются элементы - PullRequest
0 голосов
/ 13 декабря 2011

Я хочу, чтобы мой список элементов отображался в списке, но когда я пытаюсь

listbox1.Items.Add("Item1");

, ничего не добавляется, но если я помещаю код в метод загрузки форм, он работает, но когда я вызываю его из отдельного кодаМодуль это не так.Я думаю, что это потому, что обновляется другой экземпляр формы.но как мне получить активную форму, а затем добавить элементы.Я получил абстрактный класс и подклассы дерева, и я хочу, чтобы мои подклассы были в списке, а затем показаны в форме.

это была моя первая попытка, но эта работа не работает.

private void button1_Click(object sender, EventArgs e)
{
        Subclass o = new Subclass();
        List<BaseClass> l = new List<BaseClass>();
        l.Add(o);

        Form1 f = new Form1();
        f.AddObjectToListbox(l);          
} 

А потом в моем From1 я получил

public void AddObjectToListbox(List<BaseClass> l)
{
        foreach (Subclass objectname in l.OfType<Subclass>())
        {
             l.Items.Insert(0, "text" + O.getMetod);                 
        }
}

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

Ответы [ 4 ]

0 голосов
/ 14 декабря 2011

вдруг вы найдете то, что искали сами.это сделал это.

Form currentForm = Form.ActiveForm;
ListBox lb = (ListBox)currentForm.Controls.Find("ListboxName", true)[0];

но все равно спасибо за просмотр моего вопроса.

0 голосов
/ 13 декабря 2011

Ваш вопрос немного размыт ... где вы вызываете listbox1.Items.Add ("Item1");из

например,

Из метода в файле класса Forms

Из кода в другом файле,

Из кода в другой сборке,

Однако вы можете получить активную форму через статический метод класса Form:

System.Windows.Forms.Form.ActiveForm

Может это поможет

0 голосов
/ 13 декабря 2011

Одной из проблем может быть использование «Object» в качестве имени переменной класса и в методе AddObjectToListBox. Также, если вы приводите obj к Subclass, но затем присваиваете его переменной типа Object, это не имеет особого смысла. Вы можете решить оба из них одновременно, как это.

foreach (Subclass obj in l.OfType<Subclass>())
{
     lbVehicles.Items.Insert(0, "text" + obj.getMetod);                 
}

В-третьих, похоже, что вы создаете новую форму при каждом нажатии кнопки, это намеренно?

0 голосов
/ 13 декабря 2011

Сначала попробуйте очистить элементы, а затем попробуйте добавить

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...