منتدى فيجوال بيسك لكل العرب | منتدى المبرمجين العرب

نسخة كاملة : أريد تغيير إتجاه أداة TreeListView من اليمين إلى اليسار [تم الحل]
أنت حالياً تتصفح نسخة خفيفة من المنتدى . مشاهدة نسخة كاملة مع جميع الأشكال الجمالية .
يوجد بالمرفقات أداة TreeListView مع السورس كود أريد تغيير إتجاهها من اليمين الى اليسار هل من الممكن ذلك صورة الأداة :
السلام عليكم اخي عاصم
رمضان مبارك 
اذا كنت تقصد جعل الاداة من اليمين الى اليسار اليك الطريقة في الصورة
او بالكود التالي 
كود :
treeView1.RightToLeft = RightToLeft.Yes;
        treeView1.RightToLeftLayout = true;
جرب الأداة و جرب عمل ذلك لم ينجح .
سورس كود الخاص بالاداة موجود بالمرفقات .
السلام عليكم اخي عاصم 

نعم هذه الاداة تختلف  فعلت ذلك اثناء التصميم واصبحت من اليمين الى اليسار

لكن اثناء التنفيذ تعود الاداة من اليسار الى اليمين ولم اتمكن من حل هذه المعضلة

لاني لم استخدمها من قبل اتمنى ان تجد الحل

دمت بخير صديقي
و انت أيضا .
(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 كاي اداه
مشكور جدا جدا جدا لقد نجح التعديل [تم الحل] .

مثال عن الشجرة المحاسبية بأداة TreeListView