(23-05-19, 02:12 AM)asemshahen5 كتب : يوجد بالمرفقات أداة TreeListView مع السورس كود أريد تغيير إتجاهها من اليمين الى اليسار هل من الممكن ذلك صورة الأداة :
من حسن الحظ ان كود هذه الاداه تم التعديل عليها من احد الاعضاء واحتفظت بالخطوات التي قام بها في ملف نصي وهي
اول خطوه اضف هذا الكود داخل كود الاداه
protected override void OnRightToLeftChanged(EventArgs e) {
base.OnRightToLeftChanged(e);
if (this.RightToLeft == System.Windows.Forms.RightToLeft.Yes) {
this.listView1.RightToLeft = System.Windows.Forms.RightToLeft.Yes;
this.listView1.RightToLeftLayout = true;
this.treeView1.RightToLeft = System.Windows.Forms.RightToLeft.Yes;
this.treeView1.RightToLeftLayout = true;
}
else {
this.listView1.RightToLeft = System.Windows.Forms.RightToLeft.No;
this.listView1.RightToLeftLayout = false;
this.treeView1.RightToLeft = System.Windows.Forms.RightToLeft.No;
this.treeView1.RightToLeftLayout = false;
}
}
الخطوه الثانيه اذهب للحدث treeView1_DrawNode وابحث بداخله عن السطر -ستجده داخل for-
e.Graphics.DrawRectangle(SystemPens.Control, rect);
واستبدله بهذا الكود
if (this.listView1.Items.Count == 0)
this.listView1.Items.Add(new ListViewItem(new string[this.listView1.Columns.Count]));
Rectangle r = this.listView1.Items[0].SubItems[intColumn - 1].Bounds;
if (this.RightToLeft == System.Windows.Forms.RightToLeft.Yes)
e.Graphics.DrawRectangle(SystemPens.Control, new Rectangle(this.treeView1.ClientSize.Width - r.Width - r.X, rect.Y, r.Width, rect.Height));
else
e.Graphics.DrawRectangle(SystemPens.Control, new Rectangle(r.X-1, rect.Y, r.Width, rect.Height));
ثم اعمل build
بعدها تستطيه في الفورم ان تغير اتجاه الاداه بتغيير الخاصيه righttoleft كاي اداه