C#简单取色板源码

 

C#简单取色板源码,点击可以查看大图
需      要: 0.0 金币
折      扣: 100 (% 折)
 
相关搜索: 取色板 c# 
下载次数: 19
支持一下(0)
0.00%
踩一下(0)
0.00%
  • 下载等级:
  • 编  号: 20120725074734
  • 应用服务器
  • 数据库
  • 操作系统Win xp,Win2003,Win7
  • 浏览器兼容
  • 开发软件VS2010
  • 是否编译
  • 应用程序窗口
  • 是否原创免费版
  • 更新日期: 2012-08-15
  • 大  小: 123.54K
  • 浏览次量: 1601
  • 开发者链接: 官网  演示
  • 相  关: 违规举报
  • 收  藏:( 0 人收藏) 加入收藏
  • 此内容校验人员: sinacomcn
分享到:   
chenww  
 军士长 上传于/2012-08-15 10:16:55
三星会员   
   

功能介绍:
    取色,取到的颜色可以通过ColorChanged事件参数e.Color获得,还可以在控件里把current变量公开出来
实现过程:
    控件由很多色块组成。目前固定尺寸6x36,你可以自己修改尺寸。
    控件分层是这样的(从最底层到最上层):
    1.控件绘图面2.色块3.网格4.边框5.光标
    在Paint事件中按上面顺序绘制2-5。
    绘制网格很简单,根据色块大小隔一定距离画一道横(竖)线
    绘制色块道理差不多,先获取当前坐标(行,列)的颜色(根据你自己定义的调色盘计算出来),然后填充一个方块,转到处理下一个坐标,直到全部行列都处理完。
    然后绘制所有色块
    从表面上看,是通过鼠标移动,选取每个色块获得颜色。其实不然。那样做,我就需要保存每个色块的颜色信息,白白浪费空间。我的实现方法是通过鼠标位置得知当前鼠标所在色块的坐标(行,列),然后用上面的颜色算法直接得到该色块的颜色,一句话搞定(Point pt是鼠标位置)。
    标移动时会绘制光标,为了减少性能开销,不能直接Refresh()/Invalidate()控件,使用Invalidate(Rectangle)来重绘被鼠标弄脏的那个区域。所以用了两个小矩形保存旧光标和新光标的区域,然后在鼠标事件中更新(和鼠标取色一起)。
    然后鼠标移动事件里重绘时稍微把区域扩大点(避免留下难看的边框)。
    最后一行「OnColorChanged();是用来引发颜色改变事件。把事件写出来基本就完成了。
    然后再完善下属性之类的,就可以在你的程序里使用了。

    程序简单适合新手学习使用。   
注意:
   开发环境为Visual Studio 2010

 购买记录
138988400
新兵
brokge
新兵
linhgang
新兵
q506417225
新兵
1969795462
新兵
dragonjiantian
新兵
jim0707
新兵
ycbbg
新兵
NS0216
新兵
会员评论:  

一、不得利用本站危害国家安全、泄露国家秘密,不得侵犯国家社会集体的和公民的合法权益,不得利用本站制作、复制和传播不法有害信息!

二、互相尊重,对自己的言论和行为负责。

  验证码:
 
反馈请帮助我们提高!意见反馈