المشاركات : 340
المواضيع 119
الإنتساب : Jul 2013
السمعة :
6
الشكر: 599
تم شكره 466 مرات في 66 مشاركات
15-07-16, 06:34 AM
(آخر تعديل لهذه المشاركة : 15-07-16, 06:39 AM {2} بواسطة أسامة.)
اريد اضافة صور فى subitem معينة استخدم هذا الكود لاكن المشكلة عند تغير الصورة يتم تغيرها لكل الصزر الموجودة فى هذا ال subitem
كود :
private void ListView1_DrawColumnHeader(object sender, System.Windows.Forms.DrawListViewColumnHeaderEventArgs e)
{
e.DrawDefault = true;
}
private void ListView1_DrawSubItem(object sender, System.Windows.Forms.DrawListViewSubItemEventArgs e)
{
if ((e.Item.SubItems(3) == e.SubItem))
{
e.DrawDefault = false;
e.DrawBackground();
e.Graphics.DrawImage(Properties.Resources.test, e.SubItem.Bounds.Location);
// e.Graphics.DrawString(e.SubItem.Text, e.SubItem.Font, new SolidBrush(e.SubItem.ForeColor), (e.SubItem.Bounds.Location.X + My.Resources.test.Width), e.SubItem.Bounds.Location.Y);
}
else
{
e.DrawDefault = true;
}
المشاركات : 531
المواضيع 4
الإنتساب : May 2016
السمعة :
55
الشكر: 694
تم شكره 535 مرات في 367 مشاركات
يا أسامة،
هذا تعديل للكود، وحددت لك الأسطر التي لا يمكن حذفها أو تعديلها بكملة ضرور،
طبعاً الخاصية OwnerDraw لأداة listView1 ضعها true بدل السطر الموجود في الحدث Form1_Load عشان تختصر الكود.
أنا استخدمت اسم الأداة أول حرف صغير يعني listView1 وليس ListView1 عشان يمشي مع طريقة #C في تسمية الأدوات وعدل الاسم إذا ما ناسبك.
PHP كود :
private void Form1_Load(object sender, EventArgs e) { listView1.OwnerDraw = true; // هذه الخاصية ضرورية وتقدر تحددها من الخصائص بدل ما تحط هذا السطر في حدث التحميل }
private void listView1_DrawColumnHeader(object sender, DrawListViewColumnHeaderEventArgs e) { e.DrawDefault = true; // ضروري }
private void listView1_DrawSubItem(object sender, System.Windows.Forms.DrawListViewSubItemEventArgs e) { if (e.Item.SubItems[3] == e.SubItem) {
if (e.Item.Selected && ((ListView)sender).Focused) { e.Graphics.FillRectangle(new SolidBrush(SystemColors.MenuHighlight), e.Bounds); } e.DrawText(TextFormatFlags.Right); // إذا رغبت بطباعة النص في اليمين
var imageRect = new Rectangle(e.Bounds.X, e.Bounds.Y, e.Bounds.Height, e.Bounds.Height); e.Graphics.DrawImage(Properties.Resources.test, imageRect); } else { e.DrawDefault = true; // ضروري } }
المشاركات : 340
المواضيع 119
الإنتساب : Jul 2013
السمعة :
6
الشكر: 599
تم شكره 466 مرات في 66 مشاركات
15-07-16, 01:40 PM
(آخر تعديل لهذه المشاركة : 15-07-16, 01:41 PM {2} بواسطة أسامة.)
(15-07-16, 08:31 AM)الوادي كتب : يا أسامة،
هذا تعديل للكود، وحددت لك الأسطر التي لا يمكن حذفها أو تعديلها بكملة ضرور،
طبعاً الخاصية OwnerDraw لأداة listView1 ضعها true بدل السطر الموجود في الحدث Form1_Load عشان تختصر الكود.
أنا استخدمت اسم الأداة أول حرف صغير يعني listView1 وليس ListView1 عشان يمشي مع طريقة #C في تسمية الأدوات وعدل الاسم إذا ما ناسبك.
PHP كود :
private void Form1_Load(object sender, EventArgs e) { listView1.OwnerDraw = true; // هذه الخاصية ضرورية وتقدر تحددها من الخصائص بدل ما تحط هذا السطر في حدث التحميل }
private void listView1_DrawColumnHeader(object sender, DrawListViewColumnHeaderEventArgs e) { e.DrawDefault = true; // ضروري }
private void listView1_DrawSubItem(object sender, System.Windows.Forms.DrawListViewSubItemEventArgs e) { if (e.Item.SubItems[3] == e.SubItem) {
if (e.Item.Selected && ((ListView)sender).Focused) { e.Graphics.FillRectangle(new SolidBrush(SystemColors.MenuHighlight), e.Bounds); } e.DrawText(TextFormatFlags.Right); // إذا رغبت بطباعة النص في اليمين
var imageRect = new Rectangle(e.Bounds.X, e.Bounds.Y, e.Bounds.Height, e.Bounds.Height); e.Graphics.DrawImage(Properties.Resources.test, imageRect); } else { e.DrawDefault = true; // ضروري } }
لا يزال يتم تغير الصور التى تم اضافتة اذا تم تغير الصوره
كود :
private void listView1_DrawSubItem(object sender, System.Windows.Forms.DrawListViewSubItemEventArgs e)
{
if (e.Item.SubItems[3] == e.SubItem)
{
if (e.Item.Selected && ((ListView)sender).Focused)
{
e.Graphics.FillRectangle(new SolidBrush(SystemColors.MenuHighlight), e.Bounds);
}
e.DrawText(TextFormatFlags.Right); // إذا رغبت بطباعة النص في اليمين
var imageRect = new Rectangle(e.Bounds.X, e.Bounds.Y, e.Bounds.Height, e.Bounds.Height);
if (checkBox1.Checked == false)
{
e.Graphics.DrawImage(Properties.Resources.test, imageRect);
}
else
{
e.Graphics.DrawImage(Properties.Resources.test1, imageRect);
}
}
else
{
e.DrawDefault = true; // ضروري
}
}
المشاركات : 531
المواضيع 4
الإنتساب : May 2016
السمعة :
55
الشكر: 694
تم شكره 535 مرات في 367 مشاركات
إذا كان قصدك أن تضع الصورة في submit لصف محدد فعندها يجب الاعتماد على معلومة في ذلك الصف
لدينا الاعمدة (الاسم والتاريخ والموقع والحالة)
عند اضافة صف مثل
الاسم: أسامة
التاريخ: 16/7/2016
الموقع: vb4arb.com
الحالة: test
هنا نختبر النص الموجود في عمود (الحالة) عندما يكون "test" نقوم برسم الصورة فيكون جزء الكود
PHP كود :
if (e.SubItem.Text == "test") { var imageRect = new Rectangle(e.Bounds.X, e.Bounds.Y, e.Bounds.Height, e.Bounds.Height); e.Graphics.DrawImage(Properties.Resources.test, imageRect); }
المشاركات : 340
المواضيع 119
الإنتساب : Jul 2013
السمعة :
6
الشكر: 599
تم شكره 466 مرات في 66 مشاركات
(16-07-16, 05:04 AM)الوادي كتب : إذا كان قصدك أن تضع الصورة في submit لصف محدد فعندها يجب الاعتماد على معلومة في ذلك الصف
لدينا الاعمدة (الاسم والتاريخ والموقع والحالة)
عند اضافة صف مثل
الاسم: أسامة
التاريخ: 16/7/2016
الموقع: vb4arb.com
الحالة: test
هنا نختبر النص الموجود في عمود (الحالة) عندما يكون "test" نقوم برسم الصورة فيكون جزء الكود
PHP كود :
if (e.SubItem.Text == "test") { var imageRect = new Rectangle(e.Bounds.X, e.Bounds.Y, e.Bounds.Height, e.Bounds.Height); e.Graphics.DrawImage(Properties.Resources.test, imageRect); }
جزاك الله خير اخى
|