إكمال علامة تبويب تطبيق وحدة التحكم .NET
سؤال
هل لديك أي أفكار حول كيفية تنفيذ إكمال علامة التبويب لتطبيق وحدة التحكم .NET (C#)؟وأعني ذلك ضمن تطبيق يتم تشغيله ثم تكرار إدخال المستخدم (مثل تشغيل ftp.exe بدون أي وسيطات)، مثل هذا:
string line = string.Empty;
while (line != "exit")
{
//do something here
Console.ReadLine();
}
أعلم أنني ربما لم أتمكن فعليًا من استخدام خط القراءة، ولكن أود أن أكون قادرًا على إكمال علامة التبويب في نفس النقطة التي تسترد فيها المدخلات من المستخدم.
المحلول
ألقِ نظرة على هذا الرمز من مشروع Monohttp://tirania.org/blog/archive/2008/Aug-26.htmlلقد لعبت معها في يوم آخر.إنه يقوم بالكثير من عمليات تحرير سطر الأوامر، لكنني لا أعتقد أنه يقوم بإكمال السطر.
نصائح أخرى
قم بعمل Console.ReadKey().
إذا حصلت على علامة تبويب، فانظر إلى ما لديك في المخزن المؤقت للأوامر، وقم بالتكرار عبر الأوامر المتاحة لديك.لو someCommand.Name.BeginsWith(currentinput)
, ، لديك فائز، ويمكنك الكتابة لعرض قائمة بالأوامر المحتملة.
لو هناك واحد فقط (TM) يمكنك استبداله بما كتبه المستخدم :)
لقد قمت بإنشاء lib صغير لإضافة هذه الوظيفة إلى التطبيق الذي قمت بإنشائه:
https://github.com/fjunqueira/hinter
قد لا يناسب احتياجاتك، ولكن لا تتردد في تعديله.