程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> .NET網頁編程 >> C# >> C#入門知識 >> C#進度軸控件分享

C#進度軸控件分享

編輯:C#入門知識

C#進度軸控件分享。本站提示廣大學習愛好者:(C#進度軸控件分享)文章只能為提供參考,不一定能成為您想要的結果。以下是C#進度軸控件分享正文


當履行長時光後台處置時,你能否願望軟件給你一個反應,讓你懂得法式履行進度。進度軸幫你忙,輕松控制全局靜態。你的進度你做主!進度軸分為橫版和縱版總有一版合適你!

運用了事宜機制假設有更好的辦法迎接交換,假設對您有效請頂一下。

載入時光軸控件

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

panel容器中添加控件

/// <summary>
    /// 項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>
    /// 初始化垂直進度軸
    /// 2015-04-15
    /// 吳海龍
    /// </summary>
    public void InitVerticalTimeAxis()
    {
      try
      {
        int TempCenterOfThePieY = CenterOfTheCircleY;
        using (Graphics g = this.CreateGraphics())
        {
          g.SmoothingMode = SmoothingMode.HighQuality; //使畫圖質量最高,即清除鋸齒
          g.InterpolationMode = InterpolationMode.HighQualityBicubic;
          g.CompositingQuality = CompositingQuality.HighQuality;
          g.DrawString("正在履行:", 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, "繪制掉敗");
      }
}

縱版進度軸步進辦法

/// <summary>
    /// 垂直步進辦法
    /// /// 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; //使畫圖質量最高,即清除鋸齒
        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;
        }
      }
}

繪圖屬性字段

/// <summary>
   /// 藍色寬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坐標
   /// </summary>
   public static int CenterOfTheCircleX = 31;
   /// <summary>
   /// 圓心Y坐標
   /// </summary>
   public static int CenterOfTheCircleY = 46;
   /// <summary>
   /// 解釋條目X坐標
   /// </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>
   /// 白點Pie半徑
   /// </summary>
   public static int PieRadius2 = 8;
   /// <summary>
   /// 圓半徑
   /// </summary>
   public static int CircleRadius = 9;
   /// <summary>
   /// 圓心距
   /// </summary>
   public static int CircleSpace = 80;
   /// <summary>
   /// 軸X終點
   /// </summary>
   public static int LineStartX = CenterOfTheCircleX;
   /// <summary>
   /// 軸Y終點
   /// </summary>
   public static int LineStartY = CenterOfTheCircleY;
   /// <summary>
   /// 外部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>
   /// 程度標示
   /// </summary>
   private static readonly int HorizontalTimeAxis = 0;
   /// <summary>
   /// 垂直標記
   /// </summary>
   private static readonly int VerticalTimeAxis = 1;
 
   /// <summary>
   /// 繪制標記,0為程度;1為垂直。
   /// </summary>
   public static int TimeAxisModle = 0;

結構辦法

#region 結構辦法
    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值改變

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

以上所述就是本文的全體內容了,願望年夜家可以或許愛好。

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved