最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

C#?TrackBar拖動條改變滑塊顏色

 更新時間:2022年02月17日 09:50:45   作者:小豹小小小  
這篇文章主要為大家詳細介紹了C#?TrackBar拖動條改變滑塊顏色,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下

本文實例為大家分享了C# TrackBar拖動條改變滑塊顏色的具體代碼,供大家參考,具體內容如下

原理

1.TrackBar拖動條的滑塊的默認顏色是(23,23,23)偏藍色,遍歷TrackBar控件中的每一個像素點,獲取顏色是(23,23,23)的像素點,用另外一種顏色在像素點的位置上繪制直徑為1的圓形。
2.添加布爾值,判斷鼠標是否在TrackBar中。
3.在鼠標進入控件事件中,布爾值為true;在鼠標離開控件事件中,布爾值為false。
4.加入1ms的定時器,在定時器事件中,如果布爾值為true,則引用改變顏色的方法。

缺陷

定位不是很精準,y方向會靠下一點,在拖動的時候,會有小bug。所以在應用于縱向的TrackBar拖動條時,繪制的時候需要y - (float)0.5。此時的bug會不明顯,將就能夠使用。(依然存在的小bug,會在滑塊的尖兒上,留有痕跡,拖動的時候會留下混跡,是一個小點兒,可以再改進)

代碼

改變顏色的方法:

public class ChangeSliderColor
? ? {
? ? ? ? //改變滑塊顏色(橫向控件)
? ? ? ? public void LevelChangeColor(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.DrawEllipse(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.DrawEllipse(new Pen(Color.Red), x, y - (float)0.5, 1, 1);
? ? ? ? ? ? ? ? ? ? }
? ? ? ? ? ? ? ? }
? ? ? ? ? ? }
? ? ? ? }
?}

引用:

Bitmap bitmap; Rectangle rectangle; Graphics graphics; Color color;
? ? ? ? bool isIntrackBar = false;//判斷鼠標是否在trackBar中
? ? ? ? private void timer_Tick(object sender, EventArgs e)
? ? ? ? {
? ? ? ? ? ? if (isIntrackBar == true)
? ? ? ? ? ? {
? ? ? ? ? ? ? ? ChangeSliderColor csc = new ChangeSliderColor();
? ? ? ? ? ? ? ? csc.LevelChangeColor(bitmap, rectangle, graphics, color, trackBar);
? ? ? ? ? ? }
? ? ? ? }
? ? ? ? //鼠標進入trackBar時,布爾值為true
? ? ? ? private void trackBar_MouseEnter(object sender, EventArgs e)
? ? ? ? {
? ? ? ? ? ? isIntrackBar = true;
? ? ? ? }
? ? ? ? //鼠標從trackBar中出來時,布爾值為false
? ? ? ? private void trackBar_MouseLeave(object sender, EventArgs e)
? ? ? ? {
? ? ? ? ? ? isIntrackBar = false;
? ? ? ? }

如果是縱向TrackBar,則引用ChangeSliderColor的VerticalChangeColor方法。
如果在一個窗體中,存在多個TrackBar,則每個trackBar一個布爾值,并在每個trackBar的MouseEnter事件中加入timer.Start(),在MouseLeave事件中加入timer.Stop(),并在timer_Tick事件中加入判斷。

效果

以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支持腳本之家。

相關文章

  • C#中設置textbox限制條件的方法

    C#中設置textbox限制條件的方法

    這篇文章主要介紹了C#中設置textbox限制條件的方法,可實現(xiàn)設置像數(shù)量、價格、金額等的textbox的限制條件,用戶只能輸入數(shù)字或小數(shù),是非常實用的技巧,需要的朋友可以參考下
    2014-12-12
  • C#如何刪除指定文件或文件夾

    C#如何刪除指定文件或文件夾

    這篇文章主要介紹了C#如何刪除指定文件或文件夾,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2023-01-01
  • Unity3D Shader實現(xiàn)動態(tài)星空

    Unity3D Shader實現(xiàn)動態(tài)星空

    這篇文章主要為大家詳細介紹了Unity3D Shader實現(xiàn)動態(tài)星空,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2020-04-04
  • 一個讀寫csv文件的C#類

    一個讀寫csv文件的C#類

    這篇文章主要為大家詳細介紹了一個讀寫csv文件的C#類,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2017-03-03
  • C#操作DataGridView設置單元格只讀

    C#操作DataGridView設置單元格只讀

    這篇文章介紹了C#操作DataGridView設置單元格只讀的方法,文中通過示例代碼介紹的非常詳細。對大家的學習或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2022-02-02
  • C# 構造函數(shù)如何調用虛方法

    C# 構造函數(shù)如何調用虛方法

    這篇文章主要介紹了C# 構造函數(shù)如何調用虛方法,文中講解非常詳細,示例代碼幫助大家更好的理解和學習,感興趣的朋友可以了解下
    2020-07-07
  • C#基礎語法:可空類型詳解

    C#基礎語法:可空類型詳解

    這篇文章主要介紹了C#基礎語法:可空類型詳解,本文分析了可空類型的源碼、研究了可空類型強制轉換為常規(guī)類型、可空類型的運算等內容,需要的朋友可以參考下
    2015-06-06
  • asp.net(C#)清除全部Session與單個Session的方法

    asp.net(C#)清除全部Session與單個Session的方法

    下面小編就為大家?guī)硪黄猘sp.net(C#)清除全部Session與單個Session的方法。小編覺得挺不錯的,現(xiàn)在就分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2016-12-12
  • Unity常用命令模式詳解

    Unity常用命令模式詳解

    這篇文章主要為大家詳細介紹了Unity常用命令模式的相關資料,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2019-03-03
  • C#控件命名規(guī)范匯總(超詳細)

    C#控件命名規(guī)范匯總(超詳細)

    本篇文章是對C#控件命名規(guī)范進行了詳細的分析介紹,需要的朋友參考下
    2013-06-06

最新評論

乐昌市| 沅陵县| 芜湖市| 谷城县| 博兴县| 日喀则市| 石林| 延津县| 灵台县| 万安县| 邛崃市| 彭阳县| 宁蒗| 赤峰市| 海丰县| 灵台县| 巍山| 东港市| 安图县| 铁岭县| 静安区| 通榆县| 遂平县| 武宁县| 余姚市| 富川| 赤城县| 长阳| 高陵县| 玉门市| 郸城县| 手游| 道真| 卢氏县| 读书| 平江县| 锡林郭勒盟| 长阳| 民权县| 中阳县| 广元市|