تقييم الموضوع :
  • 0 أصوات - بمعدل 0
  • 1
  • 2
  • 3
  • 4
  • 5
[سؤال] سؤال في الكونسول
#2
في تطبيقات الكونسول، يمكن استخدام
كود :
Console.ReadKey()
لانتظار أي إدخال من المستخدم قبل إغلاق التطبيق، ولكن كما ذكرت، إذا نقرت على أي مفتاح، سيتم إغلاق الكونسول.
إذا كنت ترغب في إبقاء تطبيق الكونسول مفتوحًا إلى أن تقرر أنت إغلاقه بنفسك (أي لا يتم إغلاقه إلا عندما تضغط على مفتاح محدد مثل "Ctrl + C" أو أي مفتاح آخر مخصص للإغلاق)، يمكنك استخدام حلقة غير منتهية تعمل بشكل مستمر حتى تقوم أنت باتخاذ قرار إغلاق الكونسول.
إليك مثال على كيفية القيام بذلك:
vb
نسخ الكود
كود :
Module Module1
   Sub Main()
       ' رسالة ترحيب
       Console.WriteLine("مرحباً! سيتم إبقاء الكونسول مفتوحاً حتى تقرر إغلاقه.")
       
       ' استخدام حلقة لا نهائية
       Do
           ' الانتظار لإدخال من المستخدم
           ' يمكنك تعديل الشرط هنا لتحديد مفتاح خاص للإغلاق
           If Console.KeyAvailable Then
               Dim key = Console.ReadKey(True) ' قراءة المفتاح بدون طباعة على الشاشة
               ' التحقق من الضغط على مفتاح محدد للإغلاق مثل "Esc"
               If key.Key = ConsoleKey.Escape Then
                   Exit Do ' الخروج من الحلقة عندما يتم الضغط على مفتاح "Esc"
               End If
           End If
       Loop

       ' عند الخروج من الحلقة، سيتم إغلاق التطبيق
       Console.WriteLine("تم إغلاق التطبيق.")
   End Sub
End Module
شرح الكود:
  1. حلقة
    Do Loop
  2. :
    • هذه الحلقة تعمل بشكل لا نهائي، ولن تنتهي إلا إذا تم الضغط على مفتاح محدد (مثل "Esc" في المثال).
  3. Console.KeyAvailable
  4. :
    • يتم استخدام هذه الخاصية للتحقق إذا كان هناك مفتاح تم الضغط عليه دون الحاجة للتوقف.
  5. Console.ReadKey(True)
  6. :
    • يقوم بقراءة المفتاح الذي تم ضغطه ولكنه لا يطبعه على الشاشة (
      True
    • يعني عدم الطباعة).
  7. التحقق من الضغط على "Esc":
    • إذا تم الضغط على مفتاح "Esc"، يتم الخروج من الحلقة باستخدام
      Exit Do
    • .
النتيجة:
سيظل التطبيق مفتوحًا حتى تضغط على مفتاح "Esc" لإغلاقه. يمكنك تخصيص هذا ليشمل أي مفتاح آخر حسب الحاجة.
ملاحظة:
  • يمكنك استخدام
    Console.ReadKey(True)
  • بدلاً من
    Console.ReadKey()
  • لأن الأول لا يطبع الحرف على الشاشة، وهو ما يساعد في التحكم بالتطبيق بشكل أفضل.
الرد }}}
تم الشكر بواسطة:


الردود في هذا الموضوع
سؤال في الكونسول - بواسطة justforit - 14-12-24, 09:37 PM
RE: سؤال في الكونسول - بواسطة aljzazy - 21-12-24, 02:57 PM


التنقل السريع :


يقوم بقرائة الموضوع: