(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; // ضروري
}
}

