تعطيل ListView في C#, ولكن لا يزال عرض التحديد الحالي

StackOverflow https://stackoverflow.com/questions/14029

  •  08-06-2019
  •  | 
  •  

سؤال

لدي تحكم ListView و أنا أحاول معرفة أسهل/أفضل طريقة لمنع تغيير الصف المحدد(ق) ، دون يختبئ على الصف المحدد(s).

انا اعرف ان هناك HideSelection مكان الإقامة ، ولكن هذا يعمل فقط عندما ListView لا يزال يتم تمكين (ولكن لا تركز).أنا في حاجة إلى اختيار أن تكون للعرض حتى عندما ListView معطل.

كيف يمكن تنفيذ ذلك ؟

هل كانت مفيدة؟

المحلول

يمكنك أيضا جعل ListView ownerdraw.ثم لديك السيطرة الكاملة على كيفية البنود ننظر ما إذا كان يتم اختيارهم أو لا أو ما إذا كان ListView في حد ذاته هو تمكين أو لا.على DrawListViewItemEventArgs يوفر وسيلة لطرح ListView إلى رسم كل جزء من أجزاء هذا البند بحيث يكون لديك فقط أن ألفت بت كنت مهتما في.على سبيل المثال ، يمكنك رسم خلفية البند ولكن ترك الأمر ListView إلى رسم النص.

نصائح أخرى

هناك اثنين من الخيارات تغيير الصفوف المحددة تعطيل الألوان.أو تغيير جميع الصفوف الأخرى لمحاكاة أنها معطلة باستثناء اختيار واحد.الخيار الأول هو الواضح أسهل, و الخيار الثاني ومن الواضح أن تسير في حاجة إلى المزيد من الحماية.

أنا قد فعلت فعلا الخيار الأول قبل وأنه يعمل بشكل جيد جدا.عليك أن تذكر أن تغيير الألوان مرة أخرى إلى الإعدادات الافتراضية في حالة صف آخر يتم تحديده في وقت لاحق في هذه العملية.

تنفيذ SelectedIndexChanged و هل هذا

    private void listViewABC_SelectedIndexChanged(object sender, EventArgs e)
    {
        listViewABC.SelectedItems.Clear();
    }
مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top