首页 > 作文

C# TrackBar拖动条改变滑块颜色

更新时间:2023-04-05 01:27:18 阅读: 评论:0

本文实例为大家分享了c# trackbar拖动条改变滑块颜色的具体代码,供大家参考,具体内容如下

原理

1.trackbar拖动条的滑块的默认颜色是(23,23,23)偏蓝色,遍历trackbar控件中的每一个像素点,获取颜色是(23,23,23)的像素点,用另外一种颜色在像素点的位置上绘制直径为1的圆形。
2.添加布尔值,判断鼠标是否在trackbar中。
3.在鼠标进入控件事件中,布尔值为true;在鼠标离开控件事件中,布尔值为fal。
4.加入1ms的定时器,在定时器事件中,如果布尔值为true,则引用改变颜色的方法。

缺陷

定位不是很精准,y方向会靠下一点,在拖动的时候,会有小bug。所以在应用于纵向的trackbar拖动条时,绘制的时候需要y – (float)0.5。此时的bug会不明显,将就能够使用。(依然存在的小bug,会在滑块的尖儿上,留有痕迹,拖动的时候会留下混迹,是一个小点儿,可以再改进)

代码

改变颜色的方法:

public class changeslidercolor  {    //改变滑块颜色(横向控件)    public void levelchangec潍坊学院是几本olor(bitmap bitmap, rectangle rectangle,graphics graphics,color color,trackbar trackbar)    {      bitmap = new bitmap(trackbar.width, trackbar.h我最喜欢的动物eight);      rectangle = new rectangle(0, 0, trackbar.width, trackbar.height);      graphics = trackbar.creategraphics();      trackbar.drawtobitmap(bitmap, rectangle);      for (int x = 0; x &秤的笔顺lt; trackbar.width; x++)      {        for (int y = 0;y < trackbar.height; y++)        {          color = bitmap.getpixel(x, y);          if (color == color.fromargb(23,23,23))          {            graphics.drawellip(new pen(color.red), x, y, 1, 1);//这里的new pen即改变后的颜色          }        }      }    }    //改变滑块颜色(竖向控件)    public void verticalchangecolor(bitmap bitmap, rectangle rectangle, graphics graphics, color color, trackbar trackbar)    {      bitmap = new bitmap(trackbar.width, trackbar.height);      rectangle = new rectangle(0, 0, trackbar.width, trackbar.height);      graphics = trackbar.creategraphics();      trackbar.drawtobitmap(bitmap, rectangle);      for (int x = 0; x < trackbar.width; x++)      {        for (int y = 0; y < trackbar.height; y++)        {          color = bitmap.getpixel(x, y);          if (color == color.fromargb(23, 23, 23))      背书提单    {            graphics.drawellip(new pen(color.red), x, y - (float)0.5, 1, 1);          }        }      }    }}

引用:

bitmap bitmap; rectangle rectangle; graphics graphics; color color;    bool isintrackbar = fal;//判断鼠标是否在trackbar中    private void timer_tick(object nder, eventargs e)    {      if (isintrackbar == true)      {        changeslidercolor csc = new changeslidercolor();        csc.levelchangecolor(bitmap, rectangle, graphics, color, trackbar);      }    }    //鼠标进入trac悠悠天宇旷kbar时,布尔值为true    private void trackbar_mouenter(object nder, eventargs e)    {      isintrackbar = true;    }    //鼠标从trackbar中出来时,布尔值为fal    private void trackbar_mouleave(object nder, eventargs e)    {      isintrackbar = fal;    }

如果是纵向trackbar,则引用changeslidercolor的verticalchangecolor方法。
如果在一个窗体中,存在多个trackbar,则每个trackbar一个布尔值,并在每个trackbar的mouenter事件中加入timer.start(),在mouleave事件中加入timer.stop(),并在timer_tick事件中加入判断。

效果

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持www.887551.com。

本文发布于:2023-04-05 01:27:16,感谢您对本站的认可!

本文链接:https://www.wtabcd.cn/fanwen/zuowen/17b01314425989537f6729e76b39e79a.html

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。

本文word下载地址:C# TrackBar拖动条改变滑块颜色.doc

本文 PDF 下载地址:C# TrackBar拖动条改变滑块颜色.pdf

上一篇:黄酮类成分
下一篇:返回列表
标签:鼠标   颜色   布尔   拖动
相关文章
留言与评论(共有 0 条评论)
   
验证码:
Copyright ©2019-2022 Comsenz Inc.Powered by © 专利检索| 网站地图