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");
时间: 2024-10-15 22:44:42

c#winform制作用户控件+传值给用户控件的相关文章

控件不接收用户交互的情况以及事件响应顺序

开发中经常会遇到控件不接收用户交互了,可以从以下几个方面检查: 1. enable = NO 就不可以被点击 ->也会让按钮显示禁用状态 2. 设置了控件的 userInterActionEnabel = NO 3. hidden属性为YES 4. 控件的alpha < = 0.01 5. 如果一个父控件与用户的交互设置为NO ,那么它子控件将获取不到交互事件 6.如果子视图超出父视图范围,超出范围的部分也不能接收用户交互 7. 触发事件的过程 1). 交互事件,是先由父控件获取到,然后父控件

通过WinForm控件创建的WPF控件无法输入的问题

今天把写的一个WPF程序发布到别的机器上执行,发现一个比较奇怪的问题:在那个机器上用英文输入法无法输入数字,非要切换到中文输入法才行:但在我的机器上却是好好的. 最开始以为是输入法的问题,弄了好一阵子后,终于找到了原因:虽然这个程序是个WPF程序,但为了复用之前的部分代码,使用着一个WinForm的菜单控件,后续的子窗口都是通过这个WinForm菜单创建的.而用WinForm控件创建的WPF控件可能出现无法正确响应键盘事件的情况. 找到了原因后,一个常规的解决方法是:将WinForm控件换成WP

winform学习日志(二十六)----------控件treeview使用

一:实现功能,获得选中节点,在选中节点下添加节点,折叠,展开,删除,得到选中节点下checked项,选中根节点其下节点也选中,图标.上图 二:相关代码 using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using System.Linq; using System.Text; using System.Windo

Winform控件之文本类控件

对于一个应用程序而言,控件是搭建用户界面的积木.它们具备交互式的特征.VS 2012中的控件都放在工具箱中,添加一个控件到窗体,只需在工具箱中选择好要添加的控件,并按住鼠标左键,拖动到窗体上即可.向窗体上添加控件还有另一个方法,就是通过代码来实现,即可通过窗体的Controls类的Add方法,格式为:窗体标识.Controls.Add(控件标识).通过代码的方法添加控件比较麻烦,基本上是不会使用这种方法的. 文本类控件包含标签控件(Label),按钮控件(Button),文本框控件(TextBo

Winform控件之DataGridView数据控件(一)

一,DataGridView控件概述 DataGridView控件提高了一种强大而灵活的以表格形式显示数据的方式.用户可以使用 DataGridView控件来显示少量数据的只读视图,也可以对其进行缩放以显示特大数据集的可编辑视图. 扩展 DataGridView控件有很种形式,例如可以采用编程方式指定自己的排序算法来创建自己的单元格类型,通过选择一些属性,可以轻松地自定义DataGridView控件的外观:可以将许多类型的数据存储区用做数据源:也可以在没有绑定数据源的情况下操作DataGridV

[转] WinForm自定义函数FindControl实现按名称查找控件

原文地址 WinForm自定义函数FindControl实现按名称查找控件 本文所述实例实现WinForm自定义函数FindControl实现按名称查找控件的功能,在C#程序开发中有一定的实用价值. /// <summary> /// 按名称查找控件 /// </summary> /// <param name="parentControl">查找控件的父容器控件</param> /// <param name="find

winform中如何在多线程中更新UI控件--ListView实时显示执行信息

1.在winform中,所有对UI的操作,都得回到UI线程(主线程)上来,才不会报错 线程间操作无效: 从不是创建控件的线程访问它. 2.在winform中,允许通过Control.invoke对控件进行操作.如下代码: private void btnTest_Click(object sender, EventArgs e) { CheckA(); } private void CheckA() { System.Threading.ThreadPool.QueueUserWorkItem(

Winform控件之分组类控件

分组类控件主要包括容器控件(Panel),分组框控件(groupBox)和选项卡控件(TabControl)等控件. 一,Panel控件 Panel控件是由System.Windows.Forms.Panel类提供的,主要作用就是将其他控件组合一起放在一个面板上,使这些控件更容易管理.当Panel控件面板上要显示过多的控件时,可设置AutoScroll属性为true. Panel控件在默认情况下不显示边框,如把BorderStyle属性设置为不是none的其他值,就可以使用面板可视化地组合相关的

winform制作自定义控件(入门)

原文链接:http://blog.csdn.net/bychentufeiyang/article/details/7081402   与原文基本一致,只是例子变成VS2012环境,语言采用博主常用的VB.NET 一 .概述Windows 窗体控件是可再次使用的组件,它们封装了用户界面功能,并且可以用于客户端 Windows 应用程序.“Windows 窗体”不仅提供了许多现成控件,还提供了自行开发控件的基础结构.可以组合现有控件.扩展现有控件或创作自己的自定义控件.Windows 窗体控件是从