كيفية إنشاء شريط تقدم متجانسة في "Visual C" #

هام: تمت ترجمة هذا المقال باستخدام برنامج ترجمة آلية لشركة مايكروسوفت بدلاً من الاستعانة بمترجم بشري. تقدم شركة مايكروسوفت كلاً من المقالات المترجمة بواسطة المترجمين البشر والمقالات المترجمة آليًا وبالتالي ستتمكن من الوصول إلى كل المقالات الموجودة في قاعدة المعرفة الخاصة بنا وباللغة الخاصة بك. بالرغم من ذلك، فإن المقالة المترجمة آليًا لا تكون دقيقة دائمًا وقد تحتوي على أخطاء إملائية أو لغوية أو نحوية، مثل تلك الأخطاء الصادرة عن متحدث أجنبي عندما يتحدث بلغتك. لا تتحمل شركة مايكروسوفت مسئولية عدم الدقة أو الأخطاء أو الضرر الناتج عن أية أخطاء في ترجمة المحتوى أو استخدامه من قبل عملائنا. تعمل شركة مايكروسوفت باستمرار على ترقية برنامج الترجمة الآلية

اضغط هنا لرابط المقالة باللغة الانجليزية323116
للحصول على إصدار Microsoft Visual Basic .NET من هذه المقالة، راجع 323088.
الموجز
توضح هذه المقالة كيفية إنشاء بسيطة ، المخصصة UserControl لإنشاء متجانسة عنصر تحكم ProgressBar التمريري.

في الإصدارات السابقة من عنصر التحكم ProgressBar مثل الإصدار الذي يتم توفيره مع عنصر التحكم Microsoft Windows العامة عناصر تحكم ActiveX، يمكن عرض تقدم العمل في طريقتي عرض مختلفة. للتحكم في طرق العرض هذه، يمكنك استخدام الخاصية تمرير الذي يتضمن إعدادات متجانسة. التمرير المتجانس ينتج عن كتلة متصلة من الألوان الذي يمثل التقدم ثم التمرير القياسية يظهر مقسمة و تتكون من سلسلة من كتل صغير أو المستطيلات.

يعتمد التحكم ProgressBar المضمنة مع Microsoft Visual C# الإعداد القياسي.

يوضح نموذج التعليمة البرمجية في هذه المقالة كيفية إنشاء عنصر تحكم يعتمد الخصائص التالية:
  • الحد الأدنى. حصول على هذه الخاصية أو تعيين قيمة الأدنى لنطاق قيم التقدم. القيمة الافتراضية هذه الخاصية هي صفر (0); لا يمكنك تعيين هذه الخاصية إلى قيمة سالبة.
  • الحد الأقصى. حصول على هذه الخاصية أو تعيين القيمة العليا نطاق القيم الصالحة لـ التقدم. القيمة الافتراضية هذه الخاصية هي 100.
  • قيمة. حصول على هذه الخاصية أو تعيين مستوى التقدم الحالي. يجب أن تكون القيمة في النطاق الحد الأدنى والحد الأقصى الخصائص تعريف.
  • ProgressBarColor. حصول على هذه الخاصية أو تعيين لون شريط التقدم.

إنشاء عنصر تحكم ProgressBar مخصص

  1. اتبع الخطوات التالية لإنشاء مشروع جديد مكتبة التحكم Windows في "Visual C" #:
    1. بدء تشغيل Microsoft Visual Studio.
    2. من القائمة ملف، أشر إلى جديد ثم انقر فوق المشروع.
    3. في مربع الحوار مشروع جديد ، انقر فوق Visual C# ضمن أنواع Project ثم انقر فوق مكتبة التحكم النماذج Windows ضمن قوالب.

      ملاحظة في Visual Studio .NET 2003 ، انقر فوق Visual C# مشاريع بدلاً من Visual C#.
    4. في المربع الاسم، اكتب SmoothProgressBar ومن ثم انقر فوق موافق.
    5. في "مستكشف المشاريع،" إعادة تسمية وحدة نمطية للفئة الافتراضي من UserControl1.cs SmoothProgressBar.cs.
    6. في الإطار "خصائص" لكائن UserControl تغيير الخاصية اسم من UserControl1 إلى SmoothProgressBar.
  2. عند هذه النقطة، يمكنك عادةً الوراثة من فئة عنصر التحكم ثم قم بإضافة وظائف إضافية لتوسيع عنصر تحكم موجود. ومع ذلك، فئة ProgressBarمختوم ويتم تكون موروثة. لذلك، يجب إنشاء عنصر التحكم من البداية.

    قم بإضافة التعليمة البرمجية التالية إلى ملف SmoothProgressBar.cs في فئة مشتقة من UserControl.

    ملاحظة في Visual Studio .NET 2003 ، قم بإضافة التعليمات البرمجية إلى فئة وحدة نمطية للفئة UserControl اشتقاق فقط بعد المقطع “ مصمم النموذج Windows إنشاء التعليمات البرمجية ”.
    int min = 0;	// Minimum value for progress rangeint max = 100;	// Maximum value for progress rangeint val = 0;		// Current progressColor BarColor = Color.Blue;		// Color of progress meterprotected override void OnResize(EventArgs e){	// Invalidate the control to get a repaint.	this.Invalidate();}protected override void OnPaint(PaintEventArgs e){	Graphics g = e.Graphics;	SolidBrush brush = new SolidBrush(BarColor);	float percent = (float)(val - min) / (float)(max - min);	Rectangle rect = this.ClientRectangle;	// Calculate area for drawing the progress.	rect.Width = (int)((float)rect.Width * percent);	// Draw the progress meter.	g.FillRectangle(brush, rect);	// Draw a three-dimensional border around the control.	Draw3DBorder(g);	// Clean up.	brush.Dispose();	g.Dispose();		}public int Minimum{	get	{		return min;	}	set	{		// Prevent a negative value.		if (value < 0)		{			min = 0;		}				// Make sure that the minimum value is never set higher than the maximum value.		if (value > max)		{			min = value;			min = value;		}				// Ensure value is still in range		if (val < min)		{			val = min;		}		// Invalidate the control to get a repaint.		this.Invalidate();	}}public int Maximum{	get	{		return max;	}	set	{		// Make sure that the maximum value is never set lower than the minimum value.		if (value < min)		{			min = value;		}		max = value;		// Make sure that value is still in range.		if (val > max)		{			val = max;		}		// Invalidate the control to get a repaint.		this.Invalidate();	}}public int Value{	get	{		return val;	}	set	{		int oldValue = val;		// Make sure that the value does not stray outside the valid range.		if (value < min)		{			val = min;		}		else if (value > max)		{			val = max;		}		else		{			val = value;		}		// Invalidate only the changed area.		float percent;		Rectangle newValueRect = this.ClientRectangle;		Rectangle oldValueRect = this.ClientRectangle;		// Use a new value to calculate the rectangle for progress.		percent = (float)(val - min) / (float)(max - min);		newValueRect.Width = (int)((float)newValueRect.Width * percent);		// Use an old value to calculate the rectangle for progress.		percent = (float)(oldValue - min) / (float)(max - min);		oldValueRect.Width = (int)((float)oldValueRect.Width * percent);		Rectangle updateRect = new Rectangle();				// Find only the part of the screen that must be updated.		if (newValueRect.Width > oldValueRect.Width)		{			updateRect.X = oldValueRect.Size.Width;			updateRect.Width = newValueRect.Width - oldValueRect.Width;		}		else		{			updateRect.X = newValueRect.Size.Width;			updateRect.Width = oldValueRect.Width - newValueRect.Width;		}		updateRect.Height = this.Height;		// Invalidate the intersection region only.		this.Invalidate(updateRect);	}}public Color ProgressBarColor{	get	{		return BarColor;	}	set	{		BarColor = value;		// Invalidate the control to get a repaint.		this.Invalidate();	}}private void Draw3DBorder(Graphics g){	int PenWidth = (int)Pens.White.Width;	g.DrawLine(Pens.DarkGray, 		new Point(this.ClientRectangle.Left, this.ClientRectangle.Top),		new Point(this.ClientRectangle.Width - PenWidth, this.ClientRectangle.Top));	g.DrawLine(Pens.DarkGray,		new Point(this.ClientRectangle.Left, this.ClientRectangle.Top), 		new Point(this.ClientRectangle.Left, this.ClientRectangle.Height - PenWidth));	g.DrawLine(Pens.White,		new Point(this.ClientRectangle.Left, this.ClientRectangle.Height - PenWidth), 		new Point(this.ClientRectangle.Width - PenWidth, this.ClientRectangle.Height - PenWidth));	g.DrawLine(Pens.White,		new Point(this.ClientRectangle.Width - PenWidth, this.ClientRectangle.Top), 		new Point(this.ClientRectangle.Width - PenWidth, this.ClientRectangle.Height - PenWidth));} 					
  3. في القائمة إنشاء ، انقر فوق إنشاء حلول ترجمة المشروع.

إنشاء تطبيق عميل نموذج

  1. من القائمة ملف، أشر إلى جديد ثم انقر فوق المشروع.
  2. في مربع الحوار إضافة مشروع جديد ، انقر فوق Visual C# ضمن أنواع Project انقر فوق تطبيق نماذج Windows ضمن قوالب ثم انقر فوق موافق.

    ملاحظة في Visual Studio .NET 2003 ، انقر فوق Visual C# مشاريع بدلاً من Visual C#.
  3. اتبع الخطوات التالية لإضافة مثيلين من عنصر التحكم SmoothProgressBar إلى النموذج:
    1. من القائمة أدوات، انقر فوق اختيار عناصر مربع الأدوات.

      ملاحظة في Visual Studio .NET 2003 ، انقر فوق Customize Toolbox بدلاً من اختيار عناصر مربع الأدوات.
    2. انقر فوق علامة التبويب .NET Framework المكونات.
    3. انقر فوق استعراض ، ثم حدد موقع الملف SmoothProgressBar.dll التي قمت بإنشائها في المقطع "Create a custom ProgressBar control".
    4. انقر فوق موافق. لاحظ أن تتم إضافة عنصر تحكم SmoothProgressBar إلى مربع الأدوات.
    5. اسحب مثيلين من عنصر التحكم SmoothProgressBar من مربع الأدوات إلى النموذج الافتراضي المشروع تطبيق Windows.
  4. قم بسحب عنصر تحكم مؤقت من مربع الأدوات إلى النموذج.
  5. قم بإضافة التعليمات البرمجية التالية إلى الحدث التجزئة التحكم مؤقت:
    if (this.smoothProgressBar1.Value > 0){	this.smoothProgressBar1.Value--;	this.smoothProgressBar2.Value++;}else{	this.timer1.Enabled = false;} 					
  6. قم بسحب عنصر تحكم زر من مربع الأدوات إلى النموذج.
  7. قم بإضافة التعليمات البرمجية التالية إلى الحدث انقر عنصر تحكم زر:
    this.smoothProgressBar1.Value = 100;this.smoothProgressBar2.Value = 0;			this.timer1.Interval = 1;this.timer1.Enabled = true; 					
  8. من القائمة تصحيح انقر فوق "ابدأ" لتشغيل المشروع نموذج.
  9. انقر فوق الزر. لاحظ أن مؤشرات التقدم جهازي عرض نص "التقدم". مؤشر التقدم واحد يعرض التقدم بطريقة المتزايدة ويعرض مؤشر التقدم التقدم في إنقاص أو بطريقة العد التنازلي.

تحذير: تمت ترجمة هذه المقالة تلقائيًا

خصائص

رقم الموضوع: 323116 - آخر مراجعة: 08/01/2008 22:53:26 - المراجعة: 4.1

Microsoft Visual C# 2008 Express Edition, Microsoft Visual C# 2005 Express Edition

  • kbmt kbsweptvs2008 kbhowtomaster KB323116 KbMtar
تعليقات