تغيير برمجيا حدود الخلية الفردية في WinForms DataGridView

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

سؤال

أحتاج إلى تغيير حدود الخلايا الفردية برمجيا في WinForms DataGridView. عند البحث في "Net"، وجدت هذا الرابط (http://bytes.com/groups/net-vb/501128- changing-datagridview-cell-borders-runtime.) وهو نفس الشيء الذي أحاول القيام به؛ ومع ذلك، لا يوجد مثال على رمز هناك للحل، وهو

"لذلك يمكنك أن ترث من فئة DataGridViewCell وتجاوز طريقة التعديل الخاصة بك للحصول على نسخة مخصصة من DataGridViewCell. ثم يمكنك استخدام هذا DatagridViewCell المخصص في DataGridView. ملاحظة: في DataGridViewCell المخصص الخاص بك، يجب عليك عرض DataGridViewAdvancedBorderstyle عضو عام بحيث رمز DataGridView يمكن تعيين معلومات نمط الحدود هذه إلى الخلية. ثم في تطبيق التعديلات المكشوفة، يجب عليك التحقق من هذا DatagridViewAvAdvoCtBorderstyle العضو العام والعودة المقابلة DataGridViewAdvickAdbordersTyle. ثم يمكن أن DataGridView Paintcells استخدامه لرسم خليتك. ".

أواجه صعوبة في فهم تنفيذ هذا الحل. هل يمكن لشخص ما يرجى ترجمة ما سبق إلى رمز VB.NET يعمل ويوفر مثالا على الاتصال به لتغيير حدود الخلية الفردية؟

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

المحلول

فيما يلي مثال جاهز صنع ما تحتاجه، مخفية فقط بين الوظيفة الإضافية لوضع لون الخلفية.

http://www.codeproject.com/kb/grid/hulihui_customdatagridvie.aspx.

ابحث عن الخطوط

// must draw border for grid scrolling horizontally 
e.Graphics.DrawRectangle(gridPenColor, rect1);  

يرسم هذا الخط حدود الخلايا، لذلك لتغيير حدود الخلايا الفردية تغيير الحدث Args (فئة Cellbackcoloreventargs) لتضمين أي خصائص تريد وصف الحدود. ثم في طريقة DrawcellbackColor طريقة رسم الحدود بناء على هذه التي تم تمريرها في الممتلكات (وأي شيء آخر تريد رسمها في الخلية)

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top