سلام
کنترل treeview ذاتاً خاصیت right to left ندارد آیا کنترلی داریم که کار treeview را بکند و خاصیت right to left را نیز داشته باشد .
ممنون :flower:
سلام
کنترل treeview ذاتاً خاصیت right to left ندارد آیا کنترلی داریم که کار treeview را بکند و خاصیت right to left را نیز داشته باشد .
ممنون :flower:
بله از همان tree خود وی بی استفاده کن و کد زیر رو هم استفاده کن
Option Explicit
Private Declare Function SetWindowLong Lib "user32" Alias "SetWindowLongA" (ByVal hwnd As Long, ByVal nIndex As Long, ByVal dwNewLong As Long) As Long
Private Declare Function GetWindowLong Lib "user32" Alias "GetWindowLongA" (ByVal hwnd As Long, ByVal nIndex As Long) As Long
Private Const WS_EX_LAYOUTRTL = &H400000
Private Const GWL_EXSTYLE = -20
'
Private Sub Form_Load()
SetWindowLong TreeView.hwnd, GWL_EXSTYLE, GetWindowLong(TreeView.hwnd, GWL_EXSTYLE) Or WS_EX_LAYOUTRTL
Dim nodX As Node
Set nodX = TreeView.Nodes.Add(, , "R", "Root")
nodX.Expanded = True
Set nodX = TreeView.Nodes.Add(, , "P", "Parent")
nodX.Expanded = True
Set nodX = TreeView.Nodes.Add("R", tvwChild, , "Child 1")
Set nodX = TreeView.Nodes.Add("R", tvwChild, , "Child 2")
Set nodX = TreeView.Nodes.Add("R", tvwChild, , "Child 3")
Set nodX = TreeView.Nodes.Add("P", tvwChild, , "Child 4")
Set nodX = TreeView.Nodes.Add("P", tvwChild, , "Child 5")
Set nodX = TreeView.Nodes.Add("P", tvwChild, , "Child 6")
End Sub
:flower: :)
عالی بود :flower:
سلام
دمت گرم. خیلی حال داد.
ضمنا می تونید از VSFlexGrid با Set کردن مشخصه OutlineBar از آن هم استفاده کنید که خودش RightToLeft هم داره.
سلام
نمیشه برای ListView هم چنین کاری کرد؟ چون وقتی که از این کنترل به صورت Report استفاده میکنیم تیر ستونها بر عکس نمایش داده میشه.
برای این هم راه حلی هست؟
اولی که خیلی جالب بود.
تشکر :flower:
خوب برای ListView هم دوستان با APi بالا یک تست بکنن جواب بدن
سلام
من امتحان کردم و جواب داد.نوشته شده توسط کد نویس
در پناه حق موفق باشید و پرتوان
ممنون آقا حامد لطف کردی
من که الان به کامپیوتر دسترسی ندارم ولی تا جایی که یادمه این کد با tree view مشکل داشت
شما هم تست کنید ببینیم که آیا آقا حامد اشتباه تست کرده یا
شما با یک موضوع دیگه اشتباه گرفتید ؟
سلام
نه !!
از کنترل ListView به صورت Report استفاده کنید. نمیشه. ؟؟
اگه وقت داشتید بگید.
ممنون.
سلاممن که الان به کامپیوتر دسترسی ندارم ولی تا جایی که یادمه این کد با tree view مشکل داشت
ببخشید، منظور من ListView بود !! ( در حالت Report )
من اگه به خونه برگشتم حتماً این موضوع رو بررسی خواهم کرد
آقای BlackDal شما از 27 فروردین تا 1 اردیبهشت به خونه برنگشتید ؟ :wink:
سلامآقای BlackDal شما از 27 فروردین تا 1 اردیبهشت به خونه برنگشتید ؟
مثل اینکه این آقا حامد مسافرت هستند. من هم از 24 فروردین منتظر یه پاسخ از ایشان هستم. :oops:
سلام
من این وسط چیکارم؟ بنظرم منظور ایشون آقای BlackDal است.نوشته شده توسط niloufar
در پناه حق موفق باشید و پرتوان
سلام
آقا حامد محمدی، البته و صد البته شما هم آقا حامد هستید ولی باز البته و صد البته که تنها یک آقا حامد در زمین وجود ندارد :embr: من آقا حامد مصافی را گفتم نه آقا حامد محمدی :oops:من این وسط چیکارم؟ بنظرم منظور ایشون آقای BlackDal است.
سلام
سرکار خانوم نیلوفر، به من حق بدید چون در این سایت همه آقای مصافی را به نام BlackDal میشناسند نه حامد مصافی.نوشته شده توسط niloufar
آقای زواری و دیگر مسئولین بخش، ببخشید که دارم پست اضافی میفرستم.
در پناه حق موفق باشید و پرتوان
سلام
ببخشید دوستان من مسافرت بودم
مشکل List View هم حل شد!
در واقع Header کنترل List View یک پنجره فرزند نسبت به خود کنترل است ( بوسیله ++spy می توانید این موضوع را بررسی کنید )
برای حل این مشکل من هندل Header را هم به دست آوردم
ابتدا این کد را در یک ماژول کپی کنید
Rem Hamed Masafi
Rem Ineed: No Module!
Const GWL_EXSTYLE = -20
Const WS_EX_LAYOUTRTL = &H400000
Const WS_EX_NOINHERITLAYOUT = &H100000
Private Declare Function GetWindowLong Lib "User32" Alias "GetWindowLongA" ( _
ByVal hWnd As Long, _
ByVal nIndex As Long) As Long
Private Declare Function SetWindowLong Lib "User32" Alias "SetWindowLongA" ( _
ByVal hWnd As Long, _
ByVal nIndex As Long, _
ByVal dwNewLong As Long) As Long
Declare Function EnumChildWindows Lib "User32.dll" ( _
ByVal hWndParent As Long, _
ByVal lpEnumFunc As Long, _
ByVal lParam As Long) As Long
Private Sub RTLForm(hWnd As Long)
Dim OldLong As Long
OldLong = GetWindowLong(hWnd, GWL_EXSTYLE)
SetWindowLong hWnd, GWL_EXSTYLE, OldLong Or WS_EX_LAYOUTRTL Or WS_EX_NOINHERITLAYOUT
End Sub
Private Function EnumChildProc(ByVal hWnd As Long, ByVal lParam As Long) As Long
RTLForm hWnd
EnumChildProc = True
End Function
Public Sub RTLWindow(hWnd As Long, Optional GetAllChilds As Boolean = False)
RTLForm hWnd
If GetAllChilds Then EnumChildWindows hWnd, AddressOf EnumChildProc, ByVal 0&
End Sub
حالا بوسیله فراخوانی تابع RTLWindow از این ماژول به این شکل به نتیجه دلخواه می رسید
مثال :
RTLWindow ListView1.hWnd, True
ممنون BlackDal عزیز :wink: :) :D :flower: