2016-05-26 2 views
0

Я сделал приложение для формы окон (, который работает отлично более чем на пару недель). Теперь я хотел бы добавить еще одну форму в нем (, который должен быть отображен, чтобы показать дополнительные свойства элемента, значение показывается в богатом текстовом поле)Форма Windows, не показывающая контроль C#

Вот мой код для двойного щелчка (, чтобы показать окно сведений) :

private void richTextBox1_DoubleClick(object sender, EventArgs e) 
    { 
     //Using parameterized constructor since I need an input from parent form 
     Form2 formETView = new Form2(richTextBox1.Text.Substring(1, 15)); 
     formETView.Show(); 
    } 

в качестве эталона, конструктор Form2 является:

public Form2(string p) 
    { 
     // TODO: Complete member initialization 
     trans_ID = p;    
    } 

Но это показывает только этот экран:

enter image description here

Хотя фактический экран имеет несколько элементов управления:

enter image description here

Любая помощь в этом отношении будет очень ценна.

P.S: Является ли подход использовать параметризованный конструктор для передачи данных в качестве аргумента в дочернем окне неправильно? Пожалуйста, дайте мне знать, если это так.

+6

Использовать 'public Form2 (string p): this()' поэтому вы вызываете по умолчанию ctor, который вызывает 'InitializeComponent()'. –

+0

Мой плохой !! Огромное спасибо. Можете ли вы рассказать, правильно ли он подходит для использования параметризованного конструктора для передачи аргументов или нет? –

+1

Я не вижу проблем с использованием параметризованных ctors в формах, просто убедитесь, что у вас есть без параметров для дизайнера. –

ответ

1

Использование

public Form2(string p) : this() 

Этот способ вызова конструктора по умолчанию, который вызывает InitializeComponents.

0

Просто позвоните в InitializeComponent(); на вашем Кондраторе. Это инициализирует все элементы управления вашей формы

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