标签控件不会显示在继承表单上的面板中(所有其他控件都可以)

时间:2019-06-26 04:18:41

标签: c# winforms visual-studio-2017 inherited

我知道之前也有类似的问题,但是在搜索站点后,我没有发现任何可以解决我遇到的特定问题的东西。我在VS 2017中使用C#。我有一个基本表单,正在尝试创建/使用继承的表单。基本表单(frmDataEntry)包含多个控件(一个ListView,一个ComboBox,两个Label,四个Button和一个Panel),继承表单(frmEditRanch)向该面板添加六个控件:三个Label,两个Textbox和一个PictureBox。 / p>

所有这些控件均会出现并按预期方式运行,但面板内部的标签除外。面板外面的标签很好,里面的文本框和图片框也一样。但是面板内的Label控件未显示。我很困惑。

我在其他文章中看到子窗体需要在代码中创建控件,因此我也尝试过(创建标签并将其添加到代码中的面板中),但是结果没有什么不同

不确定需要多少代码才能有所帮助,但这是初始化代码,可能有用。

基本形式:

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();

    }

 ...

0 个答案:

没有答案