تغيير برمجيا حدود الخلية الفردية في WinForms DataGridView
-
13-09-2019 - |
سؤال
أحتاج إلى تغيير حدود الخلايا الفردية برمجيا في 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 طريقة رسم الحدود بناء على هذه التي تم تمريرها في الممتلكات (وأي شيء آخر تريد رسمها في الخلية)