博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
自定义控件
阅读量:6925 次
发布时间:2019-06-27

本文共 1321 字,大约阅读时间需要 4 分钟。

在开发Wince的过程中使用到了有多个输入框,在这些输入框都输入值后将这些输入框的值传递到DataGrid中的需求,心想这种东西以后还会用,正好也学习一下Winform用户控件的用法,就把它写成了一个控件

实现效果图和开发图(Wince的窗体界面比较难看...):

 

其中用红框框起来的是一个用户控件,目前实现的功能是根据传递的参数动态生成Label,Textbox,和GridView,也就是说使用的时候只需要给这个控件设置一个属性就行了

开发这个用户控件还是有点内容的,拿出来分享一下

 

1.在自定义控件的时候需要新增属性(ListHeaderStr),因为感觉这个属性能显示在可视开发界面的属性栏里,感觉应该比较复杂,其实,只要直接在用户控件类中新增属性就行了

public string ListHeaderStr { get; set; }

想引用刚刚创建的用户控件到Vs的工具栏中需要在“工具栏”中点击右键选择“选择项”,引入用户控件编辑过的exe或dll文件

 

2.因为自定义了用户控件,所以在使用这个用户控件的时候,无法直接控制控件中的Textbox或其他控件的属性,如下一个自定义控件:

只是定义了一个输入框,在自定义的控件中对KeyDown事件做了一些处理,让其能够在用户点击回车键的时候能够转换到下一个输入框(类似于Tab)但是手持机上没有Tab键,只有OK(回车),所以就有了这个控件,但是当用户需要对该控件做其他处理,如:需要捕获该输入控件的LostFocus,KeyDown等事件时,如果直接使用InBox.LostFocus或Inbox.KeyDown(Inbox 是自定义控件名),用户其实是捕获不到的,因为用户的真正需求应该是捕获Inbox中的TextBox的这些事件,所以直接用于控件上无法捕获,这里我使用重写事件的方法,在自定义的控件中加上如下事件:

public event EventHandler LostFocus; public event EventHandler
KeyDown;

大家可以看出,这些时间是和Control中的事件重名的,对这些时间进行了重写。

然后在Inbox中的Textbox的事件被激发时,激发我重写的事件,来把这种影响传递下去

private void textBox1_KeyDown(object sender, KeyEventArgs e)         {
KeyDown(this, e); } private void textBox1_LostFocus(object sender, EventArgs e) {
if (LostFocus != null) {
LostFocus(sender, e); } }

转载于:https://www.cnblogs.com/wk1234/archive/2011/10/28/2228022.html

你可能感兴趣的文章
【2014 Multi-University Training Contest 3 1002】/【HDU 4888】 Redraw Beautiful Drawings
查看>>
c#之Redis实践list,hashtable
查看>>
机会的度量:概率和分布
查看>>
【第三方SDK】百度地图实现最简单的定位功能(无地图界面)
查看>>
110_leetcode_Best Time to Buy and sell Stock II
查看>>
Android 开源项目android-open-project解析之(三) ScrollView,TimeView,TipView,FlipView
查看>>
Effective C++ 条款11
查看>>
kafka集群搭建与apiclient创建
查看>>
android如何添加桌面图标和卸载程序后自动删除图标
查看>>
【Android】12.1 Intent基本概念
查看>>
【云计算】qcow2虚拟磁盘映像转化为vmdk
查看>>
10、Cocos2dx 3.0游戏开发找小三之容器篇:Vector、Map、Value
查看>>
ExtJs之进度条实现
查看>>
C#实现把指定文件夹下的所有文件复制到指定路径下以及修改指定文件的后缀名...
查看>>
django之创建第4-3个项目-访问list数据
查看>>
黄聪:WordPress: 使用 wp_insert_attachment 上传附件
查看>>
旧手机作为USB无线网卡使用(分享WIFI、蓝牙连接)
查看>>
使用XML序列化器生成XML文件和利用pull解析XML文件
查看>>
git 本地提交后如果让服务器上的GIT 自动更新拉取
查看>>
我所了解的WEB开发(2) - PS切片
查看>>