البرمجة

تحقيق ساعة التوقيت بلغة C# في Visual Studio 2012

في هذا السياق، يظهر أنك تسعى لفهم كيفية إنشاء ستوب ووتش (stopwatch) في لغة البرمجة C# باستخدام بيئة التطوير Visual Studio 2012، حيث يتم تشغيل الستوب ووتش عند بدء الكتابة في مربع النص ويتوقف عند الضغط على زر Enter. وبالإضافة إلى ذلك، يجب أن يبدأ من جديد عند بدء الكتابة لكل كلمة ويتوقف مرة أخرى عند الضغط على Enter، ثم يقوم بعرض الأوقات المسجلة لكل كلمة.

أولاً، يتطلب ذلك استخدام الـ Stopwatch class في C# لقياس الوقت. يمكنك استخدام حدث TextChanged لمربع النص للكشف عن بداية الكتابة واستخدام حدث KeyPress للكشف عن ضغط زر Enter. بمجرد اكتشاف بداية الكتابة، يمكنك تشغيل الستوب ووتش، وعند الضغط على Enter، يمكنك توقيفه وعرض الوقت المستغرق.

الكود التالي يوضح كيف يمكن تحقيق هذا السيناريو:

csharp
using System; using System.Diagnostics; using System.Windows.Forms; class Program { static Stopwatch stopwatch = new Stopwatch(); static string lastWord = ""; [STAThread] static void Main() { Application.EnableVisualStyles(); Application.SetCompatibleTextRenderingDefault(false); TextBox textBox = new TextBox(); textBox.TextChanged += TextBox_TextChanged; textBox.KeyPress += TextBox_KeyPress; Form form = new Form(); form.Controls.Add(textBox); Application.Run(form); } private static void TextBox_TextChanged(object sender, EventArgs e) { if (!stopwatch.IsRunning) { stopwatch.Start(); } } private static void TextBox_KeyPress(object sender, KeyPressEventArgs e) { if (e.KeyChar == (char)Keys.Enter) { if (stopwatch.IsRunning) { stopwatch.Stop(); TimeSpan elapsed = stopwatch.Elapsed; DisplayElapsedTime(elapsed, lastWord); // Reset stopwatch for the next word stopwatch.Reset(); } } else { lastWord = ((TextBox)sender).Text; } } private static void DisplayElapsedTime(TimeSpan elapsed, string word) { string elapsedTime = String.Format("{0:00}:{1:00}:{2:00}.{3:00}", elapsed.Hours, elapsed.Minutes, elapsed.Seconds, elapsed.Milliseconds / 10); Console.WriteLine($"Word: '{word}', Elapsed Time: {elapsedTime}"); } }

هذا الكود يستخدم Windows Forms لإنشاء نافذة تحتوي على مربع نص، ويستجيب لحدثي TextChanged و KeyPress لتتبع بداية الكتابة والضغط على Enter على التوالي. يقوم بقياس الوقت باستخدام Stopwatch ويعرضه لكل كلمة عند الضغط على Enter.

المزيد من المعلومات

في عملية تطوير الشيفرة المصدرية أعلاه، تم استخدام لغة البرمجة C# مع بيئة تطوير Visual Studio 2012. الكود يستفيد من فئة Stopwatch المدمجة لقياس الوقت بدقة، ويستخدم حدث TextChanged لاستشعار بداية الكتابة في مربع النص، وحدث KeyPress لاستشعار الضغط على زر Enter.

قمنا بإنشاء متغير stopwatch لتتبع مضي الوقت ومتغير lastWord لتخزين آخر كلمة تم كتابتها. تم تكامل هذه المتغيرات والأحداث بشكل جيد لتحقيق الغرض المطلوب.

قمنا بإنشاء واجهة مستخدم بسيطة باستخدام Windows Forms وتضمنا مربع نص وفتحنا تطبيقه باستخدام Application.Run(form). الكود يُظهر كيف يمكن دمج المكونات والحداث بشكل فعال لتحقيق الوظيفة المطلوبة.

يتم استخدام الدالة DisplayElapsedTime لعرض الوقت المنقضي في تنسيق مناسب. يتم إعادة تعيين stopwatch بعد توقفه لقياس الوقت للكلمة التالية.

يمكنك تكامل هذا الكود في تطبيقك الأكبر أو تعديله وفقًا لاحتياجات محددة أخرى. يركز الكود على البساطة والوظائف الأساسية للتوضيح، ويمكن تحسينه أو تعديله وفقًا لمتطلباتك الخاصة.

زر الذهاب إلى الأعلى