Элементы управления метками не отображаются на панели в унаследованной форме (все остальные элементы управления отображаются) - PullRequest
0 голосов
/ 26 июня 2019

Я понимаю, что подобные вопросы задавались здесь и раньше, но после просмотра сайта я не нашел ничего, что касалось конкретной проблемы, с которой я столкнулся.Я использую C # в VS 2017. У меня есть базовая форма, и я пытаюсь создать / использовать унаследованную форму.Базовая форма (frmDataEntry) содержит несколько элементов управления (ListView, ComboBox, две метки, четыре кнопки и панель. Унаследованная форма (frmEditRanch) добавляет на панель шесть элементов управления: три метки, два текстовых поля и PictureBox.

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

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

Не уверен, сколько кода необходимо, чтобы быть полезным, но вот код инициализации, который может быть полезен.

БАЗОВАЯ ФОРМА:

public enum FormState { Idle, Adding, Editing }

public partial class frmDataEntry : Form
{
    protected AgData db = new AgData();
    protected Ranch ranch;
    public const int vScrollBarWidth = 21;

    public frmDataEntry()
    {
        InitializeComponent();
    }

    public frmDataEntry(int RanchID) : this()
    {
        ranch = db.GetRanch(RanchID);
    }

    protected void frmDataEntry_Load(object sender, EventArgs e)
    {
        if (DesignMode) return;
        UpdateRanchNameComboBox();
        cbRanchName.SelectedItem = ranch?.Name;
        ResetDataFields();
        SetFormControls(FormState.Idle);
        CreateListViewHeaders();
        UpdateRecordList();
    }
 ...

ФОРМА РЕБЕНКА:

public partial class frmEditRanch : frmDataEntry
{
    EditMode mode;

    public frmEditRanch(EditMode editMode, int RanchID = 0) : base(RanchID)
    {
        InitializeComponent();
        mode = editMode;
    }

    private void frmEditRanch_Load(object sender, EventArgs e)
    {
        AddDataControls();
    }

    protected override void AddDataControls()
    {
        Label lblName = new Label();
        lblName.Font = new Font(this.Font.FontFamily, 12, FontStyle.Regular);
        lblName.Text = "Name";
        lblName.TextAlign = ContentAlignment.MiddleLeft;
        lblName.AutoSize = false;
        lblName.Size = new Size(45, 20);
        lblName.Location = new Point(10, 23);
        pnlDataControls.Controls.Add(lblName);

        ...

        pnlDataControls.Refresh();

    }

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