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

C#進(jìn)度軸控件分享

 更新時(shí)間:2015年06月04日 15:58:24   投稿:hebedich  
這里給大家介紹的是使用C#實(shí)現(xiàn)的進(jìn)度軸的方法和示例,非常的實(shí)用,有需要的小伙伴可以參考下。

當(dāng)執(zhí)行長(zhǎng)時(shí)間后臺(tái)處理時(shí),你是否希望軟件給你一個(gè)反饋,讓你了解程序執(zhí)行進(jìn)度。進(jìn)度軸幫你忙,輕松掌握全局動(dòng)態(tài)。你的進(jìn)度你做主!進(jìn)度軸分為橫版和縱版總有一版適合你!

應(yīng)用了事件機(jī)制假如有更好的方法歡迎交流,假如對(duì)您有用請(qǐng)頂一下。

載入時(shí)間軸控件

/// <summary>
   /// 載入時(shí)間軸控件
   /// 2015-04-16
   /// 吳海龍
   /// </summary>
   public void LoadTimeAxis()
   {
     SortedDictionary<string, string> sdict = new SortedDictionary<string, string>();
     sdict.Add("1", "讀取配置");
     sdict.Add("2", "選擇模板");
     sdict.Add("3", "確認(rèn)數(shù)據(jù)");
     sdict.Add("4", "生成代碼");
     uta = new uctlTimeAxis(sdict,1);
     uta.lc = new ToolFunction.uctlTimeAxis.TimeAxisClick(SayHello);
     CommonFunction.AddForm3(splitContainer4.Panel2, uta);
   }

panel容器中添加控件

/// <summary>
    /// 項(xiàng)panel容器中添加控件
    /// </summary>
    /// <param name="p">容器panel</param>
    /// <param name="uc">顯示的usercontrol</param>
    public static void AddForm3(Panel p, UserControl uc)
    {
      p.Controls.Clear();
      p.Controls.Add(uc);
      uc.Dock = DockStyle.Fill;
 
    }

初始化縱版界面

/// <summary>
    /// 初始化垂直進(jìn)度軸
    /// 2015-04-15
    /// 吳海龍
    /// </summary>
    public void InitVerticalTimeAxis()
    {
      try
      {
        int TempCenterOfThePieY = CenterOfTheCircleY;
        using (Graphics g = this.CreateGraphics())
        {
          g.SmoothingMode = SmoothingMode.HighQuality; //使繪圖質(zhì)量最高,即消除鋸齒
          g.InterpolationMode = InterpolationMode.HighQualityBicubic;
          g.CompositingQuality = CompositingQuality.HighQuality;
          g.DrawString("正在執(zhí)行:", f1, Brushes.Black, new PointF(CenterOfTheCircleX, 5));
          g.DrawLine(p3, new Point(LineStartX, TempCenterOfThePieY), new Point(LineStartX, (sdict.Keys.Count - 1) * CircleSpace + TempCenterOfThePieY));
          foreach (var item in sdict.Keys)
          {
            g.FillEllipse(Brushes.Gray, CenterOfTheCircleX - CircleRadius, TempCenterOfThePieY - CircleRadius, CircleRadius * 2, CircleRadius * 2);
            g.FillEllipse(Brushes.White, CenterOfTheCircleX - PieRadius2, TempCenterOfThePieY - PieRadius2, PieRadius2 * 2, PieRadius2 * 2);
            g.DrawString(sdict[item], f1, Brushes.DarkGray, new PointF(ItemStartX, TempCenterOfThePieY - ItemFixY));
            Label l = new Label();
            l.Name = item;
            l.Location = new Point(ItemStartX,TempCenterOfThePieY - ItemFixY);
            l.Text = sdict[item];
            l.Click +=new EventHandler(l_Click);
 
            //l.Click += new EventHandler(l_Click2);
            this.Controls.Add(l);
            TempCenterOfThePieY = TempCenterOfThePieY + CircleSpace;
          }
        }
      }
      catch (Exception exp)
      {
        CommonFunction.WriteLog(exp, "繪制失敗");
      }
}

縱版進(jìn)度軸步進(jìn)方法

/// <summary>
    /// 垂直步進(jìn)方法
    /// /// 2015-04-16
    /// 吳海龍
    /// </summary>
    /// <param name="sender"></param>
    /// <param name="e"></param>
    public void SetVerticalStep(object sender, KeyValueEventArgs e)
    {
      int TempCenterOfThePieY = CenterOfTheCircleY;
      if ("" == KeyValueEventArgs.Key)
      {
        return;
      }
      using (Graphics g = this.CreateGraphics())
      {
        g.SmoothingMode = SmoothingMode.HighQuality; //使繪圖質(zhì)量最高,即消除鋸齒
        g.InterpolationMode = InterpolationMode.HighQualityBicubic;
        g.CompositingQuality = CompositingQuality.HighQuality;
        foreach (var item in sdict.Keys)
        {
          g.DrawString(sdict[item], f1, Brushes.Green, ItemStartX, TempCenterOfThePieY - ItemFixY);
          g.DrawEllipse(Pens.Green, CenterOfTheCircleX - CircleRadius, TempCenterOfThePieY - CircleRadius, CircleRadius * 2, CircleRadius * 2);
          g.DrawLine(p2, new Point(LineStartX, LineStartY), new Point(LineStartX, TempCenterOfThePieY));
          g.FillEllipse(Brushes.Green, CenterOfTheCircleX - PieRadius, TempCenterOfThePieY - PieRadius, PieRadius * 2, PieRadius * 2);
          if (item == KeyValueEventArgs.Key)
          {
            break;
          }
          TempCenterOfThePieY = TempCenterOfThePieY + CircleSpace;
        }
      }
}

畫(huà)圖屬性字段

/// <summary>
   /// 藍(lán)色寬2
   /// </summary>
   static Pen p1 = new Pen(Color.Blue, 2);
   /// <summary>
   /// 綠色寬3
   /// </summary>
   static Pen p2 = new Pen(Color.Green, 3);
   /// <summary>
   /// 灰色寬1
   /// </summary>
   static Pen p3 = new Pen(Color.Gray, 1);
   /// <summary>
   /// 微軟雅黑
   /// </summary>
   static Font f1 = new Font("微軟雅黑", 9, FontStyle.Regular);
   /// <summary>
   /// 圓心X坐標(biāo)
   /// </summary>
   public static int CenterOfTheCircleX = 31;
   /// <summary>
   /// 圓心Y坐標(biāo)
   /// </summary>
   public static int CenterOfTheCircleY = 46;
   /// <summary>
   /// 說(shuō)明條目X坐標(biāo)
   /// </summary>
   public static int ItemStartX = 45;
   /// <summary>
   /// 條目X修正量
   /// </summary>
   public static int ItemFixX = -20;
   /// <summary>
   /// 條目Y修正量
   /// </summary>
   public static int ItemFixY = 10;
   public static Point CenterOfThePie = new Point(CenterOfTheCircleX, CenterOfTheCircleY);
   /// <summary>
   /// 命中Pie半徑
   /// </summary>
   public static int PieRadius = 6;
   /// <summary>
   /// 白點(diǎn)Pie半徑
   /// </summary>
   public static int PieRadius2 = 8;
   /// <summary>
   /// 圓半徑
   /// </summary>
   public static int CircleRadius = 9;
   /// <summary>
   /// 圓心距
   /// </summary>
   public static int CircleSpace = 80;
   /// <summary>
   /// 軸X起點(diǎn)
   /// </summary>
   public static int LineStartX = CenterOfTheCircleX;
   /// <summary>
   /// 軸Y起點(diǎn)
   /// </summary>
   public static int LineStartY = CenterOfTheCircleY;
   /// <summary>
   /// 內(nèi)部Key定義
   /// </summary>
   public static string Key = "";
   /// <summary>
   /// 繪圖事件
   /// </summary>
   public event EventHandler<KeyValueEventArgs> KeyValueChangeEventHandler;
 
   public delegate void LabelClickEventHandler(object sender, LabelClickEventArgs e);
 
   //public event LabelClickEventHandler<LabelClickEventArgs> ;
 
   public delegate void TimeAxisClick();
 
   public TimeAxisClick lc = null;
 
   public delegate void TimeAxisClick2(string labelName);
 
   public TimeAxisClick2 lc2 = null;
   /// <summary>
   /// 流程字典
   /// </summary>
   public static SortedDictionary<string, string> sdict = new SortedDictionary<string, string>();
   /// <summary>
   /// 水平標(biāo)示
   /// </summary>
   private static readonly int HorizontalTimeAxis = 0;
   /// <summary>
   /// 垂直標(biāo)志
   /// </summary>
   private static readonly int VerticalTimeAxis = 1;
 
   /// <summary>
   /// 繪制標(biāo)志,0為水平;1為垂直。
   /// </summary>
   public static int TimeAxisModle = 0;

構(gòu)造方法

#region 構(gòu)造方法
    public uctlTimeAxis()
    {
      InitializeComponent();
    }
 
    public uctlTimeAxis(SortedDictionary<string, string> s)
    {
      InitializeComponent();
      if (sdict != null)
      {
        sdict = s;
      }
    }
 
    public uctlTimeAxis(SortedDictionary<string, string> s, int model)
    {
      InitializeComponent();
      if (sdict != null)
      {
        sdict = s;
        TimeAxisModle = model;
        if (HorizontalTimeAxis==TimeAxisModle)
        {
          KeyValueChangeEventHandler += new EventHandler<KeyValueEventArgs>(SetHorizontalStep);
        }
        else if (VerticalTimeAxis==TimeAxisModle)
        {
          KeyValueChangeEventHandler += new EventHandler<KeyValueEventArgs>(SetVerticalStep);
        }
      }
    }
#endregion

 Key值轉(zhuǎn)變

/// <summary>
   /// Key值轉(zhuǎn)變
   /// </summary>
   public class KeyValueEventArgs : EventArgs
   {
     public static string Key = "";
 
     public KeyValueEventArgs(string s)
     {
       Key = s;
     }
   }

以上所述就是本文的全部?jī)?nèi)容了,希望大家能夠喜歡。

相關(guān)文章

  • 解析在C#中接口和類的異同

    解析在C#中接口和類的異同

    今天小編就為大家分享一篇關(guān)于解析在C#中接口和類的異同,小編覺(jué)得內(nèi)容挺不錯(cuò)的,現(xiàn)在分享給大家,具有很好的參考價(jià)值,需要的朋友一起跟隨小編來(lái)看看吧
    2019-01-01
  • C# 中使用NModbus4通信庫(kù)執(zhí)行寫(xiě)操作

    C# 中使用NModbus4通信庫(kù)執(zhí)行寫(xiě)操作

    在C#中NModbus4庫(kù)提供了一個(gè)方便的方式來(lái)與支持Modbus協(xié)議的設(shè)備進(jìn)行交互,本文就來(lái)介紹了使用NModbus4通信庫(kù)執(zhí)行寫(xiě)操作,具有一定的參考價(jià)值,感興趣的可以了解一下
    2024-03-03
  • FileShare枚舉的使用小結(jié)(文件讀寫(xiě)鎖)

    FileShare枚舉的使用小結(jié)(文件讀寫(xiě)鎖)

    其實(shí)/FileShare就是控制文件流的“訪問(wèn)權(quán)限”,當(dāng)然,這僅僅是入門(mén)的文件操作,自己做了筆記,也希望能給大家?guī)?lái)幫助
    2014-01-01
  • C#中把FastReport.Net報(bào)表控件的數(shù)據(jù)保存到數(shù)據(jù)庫(kù)

    C#中把FastReport.Net報(bào)表控件的數(shù)據(jù)保存到數(shù)據(jù)庫(kù)

    這篇文章介紹了在數(shù)據(jù)庫(kù)中保存FastReport.Net報(bào)表的方法,文中通過(guò)示例代碼介紹的非常詳細(xì)。對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2022-06-06
  • C#中使用Microsoft Unity記錄日志

    C#中使用Microsoft Unity記錄日志

    這篇文章介紹了C#中使用Microsoft Unity記錄日志的方法,文中通過(guò)示例代碼介紹的非常詳細(xì)。對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2022-08-08
  • C#自定義序列化ISerializable的實(shí)現(xiàn)方法

    C#自定義序列化ISerializable的實(shí)現(xiàn)方法

    這篇文章主要介紹了C#自定義序列化ISerializable的實(shí)現(xiàn)方法,涉及C#序列化的操作技巧,非常具有實(shí)用價(jià)值,需要的朋友可以參考下
    2015-04-04
  • WinForm實(shí)現(xiàn)程序一段時(shí)間不運(yùn)行自動(dòng)關(guān)閉的方法

    WinForm實(shí)現(xiàn)程序一段時(shí)間不運(yùn)行自動(dòng)關(guān)閉的方法

    這篇文章主要介紹了WinForm實(shí)現(xiàn)程序一段時(shí)間不運(yùn)行自動(dòng)關(guān)閉的方法,涉及WinForm計(jì)時(shí)器及進(jìn)程操作的相關(guān)技巧,具有一定參考借鑒價(jià)值,需要的朋友可以參考下
    2015-09-09
  • asp.net之生成驗(yàn)證碼的方法集錦(一)

    asp.net之生成驗(yàn)證碼的方法集錦(一)

    現(xiàn)在很多網(wǎng)站都有注冊(cè)登錄的頁(yè)面,為了更好的滿足用戶體驗(yàn)和網(wǎng)站的安全性,很多網(wǎng)站都采用動(dòng)態(tài)生成的圖形碼或者是附加碼進(jìn)行驗(yàn)證,這篇文章主要就是介紹生成驗(yàn)證碼的方法,需要的朋友可以參考下
    2015-08-08
  • C#浮點(diǎn)數(shù)的表示和基本運(yùn)算

    C#浮點(diǎn)數(shù)的表示和基本運(yùn)算

    這篇文章主要介紹了C#浮點(diǎn)數(shù)的表示和基本運(yùn)算,需要的朋友可以參考下
    2016-12-12
  • 詳解C#如何加密解密RAR文件

    詳解C#如何加密解密RAR文件

    這篇文章主要為大家詳細(xì)介紹了C#如何實(shí)現(xiàn)加密解密RAR文件的功能,文中的示例代碼講解詳細(xì),對(duì)我們學(xué)習(xí)C#有一定的幫助,感興趣的小伙伴可以跟隨小編一起了解一下
    2022-12-12

最新評(píng)論

绵阳市| 安新县| 庆阳市| 安远县| 邻水| 调兵山市| 古丈县| 马公市| 昂仁县| 科尔| 海南省| 宜宾市| 射洪县| 凤山县| 正阳县| 湖南省| 钟山县| 宝丰县| 兰考县| 环江| 安岳县| 始兴县| 兴国县| 宁河县| 贵州省| 武义县| 和平区| 鄯善县| 井研县| 凤阳县| 太保市| 磐安县| 会东县| 漳平市| 二手房| 四川省| 绥芬河市| 开江县| 秦皇岛市| 垫江县| 衡水市|