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

سؤال حول الDataGrid

مغلق
بدأه صاحب همة في 23 أغسطس 2005 · 7 رد · 899 مشاهدة · في Microsoft Visual C#.NET
مشاركة: واتساب X فيسبوك تيليجرام
#1 صاحب الموضوع

اخواني الكرام هل من مثال يوضح كيفية التحكم بهذه الأداة:

- تغيير الخلفية

-التحكم في الوان السطور

-اعطاء اسماء للحقول في الاداة غير الموجودة في قاعدة البيانات وغير ذلك

مع جزيل الشكر

من لمح فجر الأجر هان عليه ظلام التكليف

#2

بالنسبة الأول لتغيير الخلفيه مش عارف انت تقصد تغيير لون الخلفيه وللا إيه ؟؟؟؟؟؟؟؟؟؟؟

لو تقصد تغيير لون الخلفيه استعمل الكود التالى

dataGrid.BackGroundColor=urColor;

2- تغيير لون الأسطر و تغيير رؤوس الالأعمدة دا بيعتمد على حاجة اسمها

DataGridTableStyle

و دا تقدر تظبطه من الخصائص بتاعة الداتا جريد عن طريق الخاصيه اللى اسمها

TableStyles

و دى هتفتحلك نافذة تقدر تظبط فيها الألوان اللى انت عاوزها عن طريق الخصائص فى قسم Colors

بس طبعا بعد لما تعمل إضافة ل table style

و بعد كدا تضغط على الخاصيه اللى اسمها

ColumnsCollection

و تضيف الأعمدة اللى انت عاوزها و تحدد اسمائها و عرضها و كل حاجة

بس لاحظ انك بتربط الtablestyle و الأعمدة اللى فيه بالجداول و العمدة فى dataset او اى مصدر بيانات عن طريق الخاصيه

mappingName لكل واحد منهم

و لازم تكون ظابط datasource للداتا جريد على داتا سيت معينة

أحمد صلاح

#3
                //Part1
               ds=oper.LoadData("Cources");
               DataGridTableStyle tableStyle = new DataGridTableStyle();
               tableStyle.MappingName = "Cources";
               tableStyle.AlternatingBackColor =Color.AliceBlue;
               tableStyle.GridLineColor = System.Drawing.Color.MediumSlateBlue;

                //part2
	DataGridTextBoxColumn textboxColStyle = null;
	textboxColStyle = new DataGridTextBoxColumn();
	textboxColStyle.HeaderText = "Cource Id";
	textboxColStyle.MappingName = ds.Tables["Cources"].Columns[0].ColumnName;
	textboxColStyle.Width=100;
  
	tableStyle.GridColumnStyles.Add(textboxColStyle);

	DataGridTextBoxColumn textboxColStyle1 = null;
	textboxColStyle1 = new DataGridTextBoxColumn();
	textboxColStyle1.HeaderText = "Cource Name";
	textboxColStyle1.MappingName = ds.Tables["Cources"].Columns[1].ColumnName;
	textboxColStyle1.Width=300;
            
	tableStyle.GridColumnStyles.Add(textboxColStyle1);

	DataGridTextBoxColumn textboxColStyle2 = null;
	textboxColStyle2 = new DataGridTextBoxColumn();
	textboxColStyle2.HeaderText = "Status";
	textboxColStyle2.MappingName = ds.Tables["Cources"].Columns[2].ColumnName;
	textboxColStyle2.Width=100;
 	 
	tableStyle.GridColumnStyles.Add(textboxColStyle2);
//                part3    
	DataGridBoolColumn BoolColStyle = null;
	BoolColStyle = new DataGridBoolColumn();
	BoolColStyle.HeaderText = "Status";
	BoolColStyle.MappingName = ds.Tables["Cources"].Columns[3].ColumnName;
	BoolColStyle.Width=100;

	tableStyle.GridColumnStyles.Add(BoolColStyle);
                 //part4
	dbGrid.TableStyles.Clear();
	dbGrid.TableStyles.Add(tableStyle);
                 //part5
	dbGrid.DataSource=ds.Tables["Cources"];

من لمح فجر الأجر هان عليه ظلام التكليف

#4

جزاك الله خيراً أخي الكريم..على ما تفضلت به.. وفي ما كتبت أعلاه بعض ما فهمت من كلامك اضافة الى ما توصلت اليه.. أعرضه للفائدة..

في الجزء الاول:

يتم فيه اضافة البيانات الى الداتا سيت (ds) وبعد ذلك اضافة ال Table Style للقيام بالتغييرات المطلوبة.

في الجزء الثاني:

يتم اضافة ثلاثة أعمدة من نوع حقل(TextBox) ووتنسيق كل حقل حسب المطلوب.

في الجزء الثالث:

يتم اضافة حقل من نوع حقل اختيار(Check Box)

في الجزء الرابع:

اضافة Table Style الى الجريد ثم اضافة الجدول الى الداتا جريد في الجزء الأخير..

من لمح فجر الأجر هان عليه ظلام التكليف

#5

الآن أريد أن أسأل أن لم يكن هناك مانع :rolleyes:

كيف لي أن أصل الى قيمة حقل معين؟؟

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

هل من معين -بعد الله-؟؟ :rolleyes:

من لمح فجر الأجر هان عليه ظلام التكليف

#6

بص يا باشا فى class اسمه HitTestInfo هوا دا بقى متاح الموضوع دا كله

HitTestInfo cellTest=dataGrid.HitTest (e.X,e.Y)

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

method بتاعة الداتا جريد اللى هيا HitTest دى وظيفتها ترجع HitTestInfo للإحداثى X,Y اللى انت بعتهملها و المفروض انك هتبعت الإحداثيين اللى تمت فيهم عملية الضغط

لكن للأسف EventArgs بتاعة DoubleCLick مبتزودكش ببيانات عن X,Y عشان كدا ممكن تستعمل MouseDown بدل DoubleClick و تختبر فيه الخاصيه Clicks بتاعة MouseEventArgs Class

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

أحمد صلاح

#7

شكراً يا باشا على التفاعل..

لكن هذا الكلاس لا يرجع الا قيمة الاحداثي(0و1)و(1و0)..الخ وليس القيمة لهذه الاحداثيات..كيف لي أن أصل الى قيمة الاحداثي؟؟

من لمح فجر الأجر هان عليه ظلام التكليف

#8

انا مش فاهم انت تقصد أى كلاس اللى مبيرجعش إلا القيمة (0,1) , (1,0) ???????????????

أحمد صلاح

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

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