c#winform制作用户控件+传值给用户控件

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了c#winform制作用户控件+传值给用户控件相关的知识,希望对你有一定的参考价值。

    一开始用的是把一个form铺到另一个form上,如下图代码,后来发现这样很卡很卡,,界面移动或者调整都会卡不回来。

            //BasicIn bi = new BasicIn(a);
            //bi.TopLevel = false;//把form当控件加载必须
            //splitContainer3.Panel1.Controls.Clear();
            //splitContainer3.Panel1.Controls.Add(bi);
            //bi.Dock = DockStyle.Fill;
            //bi.BringToFront();
            //this.ds = bi;
            //bi.Show();

   所以改用用户控件。

   首先,用户控件的制作步骤

   1,新建一个项目,文件》新建》项目。

   2,添加》新建项》用户控件。

   3,设置你需要的代码。

   4,运行程序。在debug文件夹下找相应的.dll文件。

   其次,想要使用用户控件有两种方法

    1,找到.dll文件。在工具箱右击》选择项》.NET FRAMEWORK组件》浏览,找到.dll文件添加进来,工具箱就会自动显示用户控件,直接拖拽就好。缺点:想要修改用户控件就要重新生成dll文件,麻烦。

    2,右击你自己项目的解决方案》添加》现有项,把用户控件添加进来,边改边使用。

   好了。

 

   如果想要把窗口的值传给用户控件,

   1,get,set方法.

      用户控件:

       public static string tipdou = null;

        public void SetLab(string _tipdou)
        {
            tipdou = _tipdou;
            showData(tipdou);
        }

        public static string GetLab()
        {
            return tipdou;
        }

   窗口:

      userControl11.SetLab("a");

   2,方法参数传值,,,

   用户控件:

public void addData(string b)
{
sarrry = MyStr.Split(new char[] { ‘*‘ }, 7, StringSplitOptions.None);
if (b == "style")
{

this.addDatarow();
}
if (b == "color")
{
this.addDatarow1();
}

if (b == "size")
{
this.addDatarow2();

}
}

    窗口:

     

   userControl11.addData("a");

 

以上是关于c#winform制作用户控件+传值给用户控件的主要内容,如果未能解决你的问题,请参考以下文章

C#(Winfrom)窗体传值问题(子窗体回传值给父窗体)

WeifenLuo.WinFormsUI.Docking中窗体怎么传值

WPF C#怎么窗体间传值

C#winform 主窗体上的用户控件怎样调用主窗体的一个方法!

浏览器怎么给winform传值

c# 2个winform 中的下拉框传值问题