عناصر التحكم بدعم مدمج-لرسم-المالك
مالك الرسم في Windows Forms، الذي هو الرسم مخصص يسمى أيضا، هو أسلوب لتغيير مظهر عناصر تحكم معينة vهوual.
بشكل عام، معالجة Windows الرسم تلقائياً باستخدام إعدادات الخصائص مثل BackColorلتحديد الالمظهر عنصر تحكم. مع مالك رسم، تأخذ على الرسم على العملية، وتغيير العناصر التي لا تتوفر باستخدام خصائص المظهر. على سبيل المثال، عدد كبير من عناصر تسمح لك بتعيين اللون النص الذي هو dهوplayed، ولكن يتم تقييدها إلى اللون مفرد. يمكنك رسم مالك إلى القيام بأشياء مثل عرض جزء من نص بالأسود والجزء باللون الأحمر.
وعملياً، مالك الرسم يشبه إلى رسم الرسومات في نموذج. على سبيل المثال، يمكنك استخدام وظائف رسومات في معالج ل النموذج Paintحدث لمضاهاة ListBoxعنصر تحكم، ولكن يجب عليك كتابة تعليمات برمجية الخاصة بك لمعالجة تفاعل مستخدم الجميع. مع مالك الرسم، عنصر تحكم تستخدم تعليمات برمجية لرسم محتوياته إلا أن يحتفظ بكافة الإمكانيات المضمنة الخاصة به وإلا. يمكنك استخدام وظائف رسومات لرسم كل عنصر عنصر تحكم أو يخصص بعض أوجه كل عنصر أثناء استخدام المظهر الافتراضي للأوجه الأخرى الخاصة بكل عنصر.
مالك الرسم في نماذج Windows عناصر التحكم
لتنفيذ مالك الرسم في التحكم التي دعم، سيتم عادة تعيين خاصية واحدة ومعالجة الأحداث أو أكثر.
تحتوي معظم عناصر التحكم التي تدعم مالك الرسم OwnerDrawأو DrawModeخاصية التي تشير إلى ما إذا كان سيتم رفع عنصر التحكم الخاصة به المتعلقة برسم حدث أو الأحداث عند فإنه سيرسم نفسه.
عناصر التحكم that do not have an OwnerDraw أو DrawMode خاصية تضمين the DataGridView عنصر تحكم, which provides drawing أحداث that occur automatically, و the ToolStrip عنصر تحكم, which هو drawn using an خارجي رسم هندسي فئة that has its own drawing-related أحداث.
There are many different kinds of رسم أحداث, but a typical رسم حدث occurs في ترتيب إلى draw a مفرد العنصر within a عنصر تحكم. The معالج الأحداث receives an EventArgs كائن that يحتوي على معلومات حول the العنصر being drawn و أدوات you can استخدم إلى draw it. For مثال, this كائن typically يحتوي على the العنصر's فهرس رقم within its parent مجموعة, a Rectangle that indicates the العنصر's عرض boundaries, و a Graphics كائن for calling paint وظائف. For some أحداث, the EventArgs كائن provides إضافى معلومات حول the العنصر و وظائف that you can يتصل إلى paint some aspects of the العنصر بواسطة الافتراضي, such كـ the الخلفية أو a تركيز مستطيل.
إلى إنشاء a reusable عنصر تحكم that يحتوي على your مالك-drawn customizations, إنشاء a جديد فئة that derives من a عنصر تحكم فئة that supports مالك رسم. بدلاً من معالجة الأحداث الرسم، قم بتضمين تعليمات برمجية مالك-الرسم في تجاوزات للمناسبة من OnEventName أسلوب أو أسلوب s في الفئة الجديدة. تأكد من أن تقوم باستدعاء الأسلوب OnEventName فئة Base أو الأساليب في هذه الحالة حتى مستخدمي تلك الخاصة بك عنصر تحكم يمكن معالجة الأحداث مالك-الرسم وقم بتوفير مزيد من التخصيص.
Windows Forms التالية عناصر التحكم مالك دعم الرسم في الجميع إصدارات.NET Framework:
MenuItem(used بواسطةMainMenuوContextMenu)
عناصر التحكم التالية دعم مالك الرسم فقط في NET Framework. الإصدار 2.0:
عناصر التحكم التالية دعم مالك الرسم والجديد في NET Framework. الإصدار 2.0:
توفر المقاطع التالية تفاصيل إضافى لكل من عناصر التحكم هذه.
مربع قائمة و مربع تحرير وسرد عناصر التحكم
تمكنك ListBoxو ComboBoxعنصر تحكم s رسم العناصر الفردية عنصر تحكم في الحجم واحد، أو في أحجام متباينة.
ملاحظة
على الرغم من أن CheckedListBoxعنصر التحكم هو مشتقة من ListBoxعنصر التحكم، لا يعتمد مالك الرسم.
لرسم كل عنصر نفس الحجم، قم بتعيين DrawModeخاصية إلى OwnerDrawFixedو hوle DrawItemحدث.
لرسم كل عنصر باستخدام الحجم مختلف، قم بتعيين DrawModeخاصية إلى OwnerDrawVariableومعالجتها كلاهما MeasureItemو DrawItemالأحداث. MeasureItemلك حدث بالإشارة إلى الحجم عنصر قبل DrawItemإجراء حدث لهذا العنصر.
ل المزيد من المعلومات، قم بما في ذلك تعليمات برمجية الأمثلة، راجع المواضيع التالية:
MenuItem مكوّن
MenuItemيمثل مكون مفرد عنصر القائمة في MainMenuأو ContextMenuمكوّن.
لرسم MenuItem، المعينة الخاصة به OwnerDrawخاصية إلى trueو hوle به DrawItemحدث. إلى يخصص الحجم عنصر قائمة قبل DrawItemإجراء حدث، معالجة العنصر MeasureItemحدث.
لمزيد من المعلومات، بما في ذلك أمثلة تعليمات برمجية، راجع مرجع المواضيع التالية:
عنصر التحكم عنصر تحكم علامة جدولة
TabControlيمكنك التحكم إلى رسم علامات تبويب فردية في عنصر تحكم. مالك رسم يؤثر فقط علامات تبويب; TabPageالمحتويات لن تتأثر.
لرسم كل علامة تبويب في TabControl، قم بتعيين DrawModeخاصية إلى OwnerDrawFixedو hوle DrawItemحدث. Th هو حدوث حدث مرة واحدة لكل علامة تبويب فقط عند علامة التبويب هو vهوible في عنصر التحكم.
لمزيد من المعلومات، بما في ذلك أمثلة تعليمات برمجية، راجع مرجع المواضيع التالية:
تلميح الأداة مكوّن
ToolTipمكونات يتيح لك إلى رسم olTip إلى بالكامل عند عرضه.
لرسم ToolTip، المعينة الخاصة به OwnerDrawخاصية إلى trueو hوle به Drawحدث. إلى يخصص الحجم ToolTipقبل Drawمعالجة حدث، Popupحدث ومجموعة ToolTipSizeخاصية في معالج الأحداث.
لمزيد من المعلومات، بما في ذلك أمثلة تعليمات برمجية، راجع مرجع المواضيع التالية:
عنصر تحكم ListView
ListViewيمكنك التحكم إلى رسم عناصر الفردية وعناصر الفرعية وعناوين الأعمدة في عنصر تحكم.
لتمكين مالك الرسم في عنصر تحكم، قم بتعيين OwnerDrawخاصية إلى true.
لرسم كل عنصر عنصر تحكم، معالجة DrawItemحدث.
لرسم كل عنوان العمود "أو" عنصر فرعي هو عنصر تحكم عند Viewتعيين خاصية إلى Details، معالجة DrawSubItemو DrawColumnHeaderالأحداث.
لمزيد من المعلومات، بما في ذلك أمثلة تعليمات برمجية، راجع مرجع المواضيع التالية:
عنصر تحكم عرض شجرة
TreeViewيمكنك التحكم إلى رسم العقد فردية في عنصر تحكم.
لرسم نص المعروض في كل عقدة فقط، قم بتعيين DrawModeخاصية إلى OwnerDrawTextو hوle DrawNodeحدث لرسم نص.
لرسم الجميع العناصر لكل عقدة، قم بتعيين DrawModeخاصية إلى OwnerDrawAllو hوle DrawNodeحدث لرسم بغض النظر عن العناصر التي تحتاجها، مثل نص ورموز وخانات الاختيار، بالإضافة إلى و علامات الطرح، و خطوط الاتصال في العقد.
لمزيد من المعلومات، بما في ذلك أمثلة تعليمات برمجية، راجع مرجع المواضيع التالية:
عرض شبكة البيانات عنصر تحكم
DataGridViewيمكنك التحكم إلى رسم صفوف وخلايا فردية في عنصر تحكم.
إلى رسم خلايا الفردية، معالجة CellPaintingحدث.
إلى رسم صفوف الفردية أو عناصر صفوف، قم بمعالجة واحد أو كلا الإجراءين RowPrePaintو RowPostPaintالواحداث. RowPrePaintإجراء حدث قبل أن يتم تلوين خلايا في صف واحد، و RowPostPaintإجراء حدث بعد أن يتم تلوين خلايا. يمكنك معالجة كل من الأحداث و CellPaintingحدث إلى رسم خلفية صف خلايا فردية والصف الأمامي بشكل منفصل، أو يمكنك توفير cusإلىmizations معينة الموقع الحاجة إليها واستخدام عرض الافتراضي للعناصر الأخرى في الصف.
ل المزيد من المعلومات، قم بما في ذلك تعليمات برمجية الأمثلة، راجع المواضيع التالية:
كيفية القيام بما يلي: تخصيص مظهر الخلايا الموجودة في عنصر تحكم DataGridView الخاص بـ Windows Forms
كيفية القيام بما يلي: يخصص المظهر صفوف في عرض شبكة البيانات Windows Forms عنصر تحكم
التحكم سلسلة الأدوات
ToolStripو تمكين عناصر التحكم المشتقة بتخصيص أي أوجه المظهر بها.
لتوفير عرض مخصص ل ToolStripتعيين عناصر التحكم، Rendererخاصية ToolStrip، ToolStripManager، ToolStripPanel، أو ToolStripContentPanelإلى ToolStripRendererالكائن ومعالجة واحد أو المزيد العديد من الأحداث الرسم الموفرة من قبل ToolStripRendererفئة. بدلاً من ذلك، تعيين Rendererخاصية إلى مثيل الخاصة بك فئة مشتقة من ToolStripRenderer، ToolStripProfessionalRenderer، أو ToolStripSystemRendererالذي يطبق أو يتجاوز معينة OnEventName الأساليب.
ل المزيد من المعلومات، قم بما في ذلك تعليمات برمجية الأمثلة، راجع المواضيع التالية: