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