الفريق العربي للبرمجةأرشيف المنتديات · 2000 – 2023
نسخة أرشيفية للقراءة فقط — التسجيل والمشاركة مغلقان، والمحتوى محفوظ كما كان.

عن GDI+ و الرسم

مغلق
بدأه dev_a_salah في 8 سبتمبر 2005 · 17 رد · 1,070 مشاهدة · في Microsoft Visual C#.NET
مشاركة: واتساب X فيسبوك تيليجرام
#1 صاحب الموضوع

انا بعمل كونترول عاوز اعمله border (هوا المفروض من النوع UserControl ) فكتبت الكود فبحاول ارسم عليه على حدودة فى الحدث PAINT او اعمل override للداله onpaint لكن المشكله ان الكونترول لما بحطه على فورم يرسم الإطاار دا لنفسه لكن اللى بيحصل ان الكونترول مبعلش اى رسم يظهر عليه إلا لو حدث ان الفورم تم تغطيته بأى فرم تانى و بعدين إزيل من عليه وقتها بيظهر الرسم اللى انا عامله على الكونترول بتاعى

حد يعرف يحل المشكله دى

او لو مش فاهم من شرحى يسألنى و انا اوضحله

؟؟؟؟؟؟؟؟؟؟؟؟

أحمد صلاح

#2

فيه خطأ المشكله مش لو رسمت على الكونترول . لو رسمت على الكونترول عادى الرسم بيظهر

لكن لو رسمت على label على الكونترول فى احاله دى الرسم مبيظهرش إلا لو تم تغطية (المساحة من الفورم المشغوله بهذا الكونترول او جزء منها ) بأى فورم تانى نافذة تانية ثم هذة النافذة

أحمد صلاح

#3

الرجاء ارفاق و لو جزء بسيط من الكود حتى نستطيع أن نعايش هذه المشكلة معك

Sr. Software Development Engineer
Hulu, LLC
My Blogs

#4

الرجاء لما تعمل تشغيل للبرنامج حرك النافذة حتى يصبح معظمها خارج إطار النافذة ثم ارجعها ثانية إلى مكانها و ستجد ان الخط الذى أريد رسمه يظهر فى هذه الحاله ؟؟؟

و كيف يمكن جعله يظهر من بدء التشغيل

el code.rar.rar

أحمد صلاح

#5

جاري التجربة

Sr. Software Development Engineer
Hulu, LLC
My Blogs

#6

دي حاجة غريبة فعلاً أنا مش عارف إيه المشكلة الصراحة بس ححاول أعرفها و أقولك

على العموم الGDI طول عمره غبي فمش جديدة عليه

Sr. Software Development Engineer
Hulu, LLC
My Blogs

#7

انا كمان بجرب فيها و إن شاء الله ربنا يسهل و نوصل

أحمد صلاح

#8

يمكنك ان تشرح لي ماذا تريد أن تفعل بالضبط و ربما وجدنا حلاً آخر بدون الGDI

Sr. Software Development Engineer
Hulu, LLC
My Blogs

#9

:( :( :(

بصراحة بصراحة انا اعرف حل تانى و طريقة تانيه اعمل بيها اللى انا اعوزة و هيا ان انا مش محتاج اصلا ال label يعنى ممكن ارسم على سطع الكونترول نفسه و مش هتظهر المشكله دى لكن انا بدور على إزاى و إيه سب المشكله دى . يعنى مثلا لو اتكررت و كنت محتاج انى لازم ارسم عللا كونترول على الكونترول اللى انا بصممه يبقى إيه الحل بس .

و اسفين على إزعاجك معانا و تعببتك معايا سورىىىىىىىىىىىىىىىىى

:( :( :(

أحمد صلاح

#10

لم تسبب لي أي ازعاج فأنا أيضاً أريد أن أعرف سبب هذه المشكلة المزعجة و لكن أعتقدت أنك تحتاج حل سريع للمشكلة أما إذا كان البرنامج بغرض التعلم فلنتعلم سوياً

Sr. Software Development Engineer
Hulu, LLC
My Blogs

#11

طيب كويس الحمد لله

طيب بص انا أخر حاج وصلتلها ان الفورم لما بيشتغل بيحدث الحدث paint بتاع ال label و بيرسم الخط فعلا لكن بعد كدا لما ال حدث paint بتاع الكونترول نفسه بيحدث بيتلغى الرسم و على فكرة ال label لو مش معموله dock يبقى حتى بعد كدا عمر ما الرسم بيظهر لأن الحال دا بيتكرر لكن فى حالة انه معمول له dock بعد اول ظهور للكونترول الحدث paint بتاعه مبيتنشطش خالص لأن ال label مغطيه

انا اسف على طريقة شرحى لأى معلومة عشان عارف ان انا بشرح بطريقة تحلى اللى فاهم ينسى كل اللى عارفة و لكن ما باليد حيله lol

أحمد صلاح

#13

بصراحه رغم ان الموضوع ده عباره عن مشكله محتاجه لحل... لكن بصراحه انا فرحت لما شوفت الموضوع ده ...سبحان الله هى هى المشكله طبق الاصل حصلت معايا وكنت مفكر الغلط عندى فى الجهاز

........ظلمت الراجل يا عينى( زمانه زعلان منى دلوقتى :lol: :lol: )

الكلام دا حصل معايا من شهر وقعدت اشوف الخطأ فين كتير لما بقيت عامل كده :wacko: :wacko:

بس انا كنت بجرب طريقه (مش مقتنع بيها لحد دلوقتى)..وكانت بتنفع معايا

كنت بقول دا العيب فى الفورم اللى انا حطيت فيها الكنترول لان الحدث paint بتاع الكنترول بيتنفذ بس من غير ما يرسم الخط..واللى خلانى متاكد من كده انى حطيتbreak points وعملت debugging

لقيت انه السطر

graphics.drawline بيتنفذ بس الخط ما بيظهرش غير لما تقعد تبهدل فى الفورم شويه...فقلت اخلى الحدث paintبتاع الفورم ينادى على الكود الخاص بالحدث paint للكنترول(ادى اول العك)وطبعأ لازم اغير الhandler فى الكنترول اخليهpublic عشان اقدر اعمل كده(ادى اخطر تانى عك ..كأنى بشيل الحمايه من عليه)...لكن ما طلعش نتيجه

قولت اعمل تايمر كل شويه يرسم الجزء الموجود فيه الكنترول عن طريق invalidate (ثالث احسن عك)وبعدين لما جيت انفذ...........

للاسف :( :( :( :( ..البرنامج اشتغل وظهر الخط

بس اقول ايه دى حاجه اتعودت عليها من الgdi+

على العموم انا مش بعتبر ده حل بس شوفوا المرفقات (تعديل البرنامج المذكور سابقاً)...لحد ما نشوف طريقه

testforthe control.zip

#14

وسبحان الله كنت عامل حاجات زى دى برضه من فتره واشتغلت من غير اى تعقيد

لكنى لاحظت ان كل اللى اشتغلوا كان الرسم فيهم بعيد عن حدود الكنترول

نصيحتى ليك:- يا اما تشوف حل وتبقى تقولى عليه(يوصى به) ...يا إما تبعد عن حدود الكنترول وتغنى ليها :lol:

وانا منتظر الرد

مثال قديم شغال فى المرفقات B)

Desktop.zip

#15

شكرا crazy man و abdelwa7ed بس الموضوع crazy man مش كيف اتغلب على المشكله الموضوع إيه الخطأ اللى بيخصل و سببه إيه و كيف نصلحة

اما يا عبد الواحد انت ما ارفققتش الكود بتاع الكونترول فى تصحيحك للكود

ياريت تحطه لنا هنا

و انا اللى لاحظته ان الخط بيترسم على ال label بعد الحدث paint بتاعه مبيشتغل لكن بعد كدا الحدث paint بتاع الكونترول نفسه لما بيشتغل بيمسح اللى اترسم على label

ياريت لو تجربوا معانا تانى

هيا ال gdi+ دى اصلا باين عليها مجانينو لكن لازم نتعلم حكم ميكروسفت على الضعيف

lol

أحمد صلاح

#16
اقتباس
اما يا عبد الواحد انت ما ارفققتش الكود بتاع الكونترول فى تصحيحك للكود

:unsure:

اسف اصلى بصراحه منمتش بقالى يومين :wacko: :wacko: :wacko:

انا حطيته فى المرفقات ....ويا رب ماغلطش تانى المره دى...لو لاقيت جديد فى الموضوع قولى

سلاااااااااااام

modification.zip

#17

شكرا و جارى تنزيله

أحمد صلاح

#18

فى حل يا جماعه

بدلا من

Graphics graphics=label1.CreateGraphics();
graphics.DrawLine(new Pen(Color.Red,2),0,0,this.Width,0);

هنكتب

e.Graphics.DrawLine(new Pen(Color.Red,2),0,0,this.Width,0);

وطبعاً هنشيل

graphics.Dispose();

والمصيبه انها اشتغلت معايا ...موجود بالمرفقات جربوه

وهتسالنى دا سببه ايه؟...اقولك ما هو دا اللى انا نفسى اعرفه

el code[1].rar.zip

هذا الموضوع مغلق.

مواضيع مشابهة