以编程方式向Form中添加元素

时间:2019-02-06 05:49:35

标签: c# winforms

我在Ubuntu上编写C#代码,并在需要使用Windows.Forms时使用CSC编译器进行编译 我没有使用Visual Studio IDE,仅在普通编辑器中编写代码。 扩展Form的类中的基本ShowDialog()函数运行良好。 但是,当我尝试使用Controls.Add()向其中添加元素时,编译器显示以下错误:SpanHelpers.Add<T>(IntPtr, int)' is inaccessible due to its protection level 如何访问此特定功能? 我在做什么错了?

我的代码:

using System;
using System.IO;
using System.Drawing;
using System.Windows.Forms;

namespace helloWorld
{
    class first
    {
        public static void Main(string[] args)
        {
            FormsSample forms = new FormsSample();
        }
    }


    public partial class FormsSample : Form
    {
        private FolderBrowserDialog fbd;

        private void InitializeComponents()
        {
            this.Controls.Add<FolderBrowserDialog>(fbd);
        }
        public FormsSample()
        {
            fbd = new FolderBrowserDialog();
            InitializeComponents();
            this.Name = "Folder Browser";
            this.AutoScaleDimensions = new SizeF(6F, 13F);
            this.ClientSize = new Size(1000, 500);
            this.CenterToScreen();
            ShowDialog();
        }
    }
}

1 个答案:

答案 0 :(得分:0)

Control.ControllCollection没有定义通用的Add<T>方法。看来您正在以某种方式尝试引用非公共扩展方法。

您应该更改代码以仅使用Add

this.Controls.Add(fbd);