نمایش نتایج 1 تا 3 از 3

نام تاپیک: نمایش ScrollBars در دیتاگرید

  1. #1
    کاربر تازه وارد آواتار edisoon
    تاریخ عضویت
    بهمن 1381
    محل زندگی
    Iran
    پست
    54

    نمایش ScrollBars در دیتاگرید

    دوستان، چطوری میتونم Vertical ScrollBar یک دیتاگرید رو بصورت دائم Visible کنم؟
    در حالت نرمال Vertical ScrollBar فقط وقتی نمایش داده میشه که گرید تعداد سطرهای زیادی داشته باشه ولی من میخوام اگر تعداد سطرها کمتر از اندازه هم بود ScrollBar Vertical باز هم نمایش داده بشه و جاش خالی نباشه.

  2. #2
    کاربر دائمی آواتار rooshan2008
    تاریخ عضویت
    مرداد 1387
    محل زندگی
    گیلان- لشت نشا
    سن
    37
    پست
    179

    نقل قول: نمایش ScrollBars در دیتاگرید

    سلام

    من از خود دیتا گرید مستقیم تا حالا ندیدم ولی یه روش بلدم و بسیار هم جالب هست تغریباً هر بلایی که می خواستم روی هر شیی که دوست داشتم در می آوردم.

    بعضی وقت ها هست که برنامه نویس نیاز داره چند تا خاصیت به خاصیت های یک کنترول اضافه کنه برای این کار از وراثت استفاده می شه

    همین الان من یکی رو با سرعت درست کردم و اون چیزی رو که تو خاستی براش گزاشتم

    اگه می خوای این کار رو انجام بدی اول یه پروژه Windows Forms Appliction درست کن .بعد یک کلاس به پروژت اظافه کن( متن پیش فرضی رو که داخل کلاس بود رو پاک کن) و بعد کد زیر رو داخلش بطور کامل کپی کن





    Public
    Class RoshanDataGrid : Inherits DataGridView
    Dim VScroll AsNew VScrollBar
    Dim HScroll AsNew HScrollBar
    Dim Show_v AsBoolean = True
    Dim Show_H AsBoolean = True
    PublicProperty ShowVscroll_Roshan() AsBoolean
    Get
    Return Show_v
    EndGet
    Set(ByVal value AsBoolean)
    Show_v = value
    If value Then
    ShowV()
    HScroll.Width = Me.Width - IIf(VScroll.Visible, VScroll.Width, 0)
    VScroll.Show()
    Else
    VScroll.Hide()
    EndIf
    EndSet
    EndProperty
    PublicProperty ShowHscroll_Roshan() AsBoolean
    Get
    Return Show_H
    EndGet
    Set(ByVal value AsBoolean)
    Show_H = value
    If value Then
    ShowV()
    HScroll.Show()
    Else
    HScroll.Hide()
    EndIf
    EndSet
    EndProperty
    PrivateSub ShowV()
    VScroll.Parent = Me
    VScroll.Top = 0
    VScroll.Enabled = False
    VScroll.Maximum = 0
    VScroll.Height = Me.Height
    IfMe.RightToLeft = Windows.Forms.RightToLeft.Yes Then
    VScroll.Left = 0
    Else
    VScroll.Left =


    Me.Width - VScroll.Width
    EndIf
    EndSub
    PrivateSub ShowH()
    VScroll.Maximum = 1
    HScroll.Parent = Me
    HScroll.Enabled =


    False
    IfMe.RightToLeft = Windows.Forms.RightToLeft.Yes Then
    HScroll.Left = VScroll.Width
    Else
    HScroll.Left = 0
    EndIf
    HScroll.Width =


    Me.Width - IIf(VScroll.Visible, VScroll.Width, 0)
    HScroll.Top = Me.Height - HScroll.Height
    HScroll.RightToLeft = Me.RightToLeft
    EndSub
    PrivateSub RoshanDataGrid_Paint(ByVal sender AsObject, ByVal e As System.Windows.Forms.PaintEventArgs) HandlesMe.Paint
    ShowV()
    ShowH()
    EndSub
    PrivateSub RoshanDataGrid_Resize(ByVal sender AsObject, ByVal e As System.EventArgs) HandlesMe.Resize
    ShowV()
    ShowH()
    EndSub
    PrivateSub RoshanDataGrid_RightToLeftChanged(ByVal sender AsObject, ByVal e As System.EventArgs) HandlesMe.RightToLeftChanged
    ShowV()
    ShowH()
    EndSub
    PrivateSub RoshanDataGrid_Scroll(ByVal sender AsObject, ByVal e As System.Windows.Forms.ScrollEventArgs) HandlesMe.Scroll
    If e.NewValue > 0 Then
    ShowHscroll_Roshan =


    False
    ShowVscroll_Roshan =


    False
    Else
    ShowHscroll_Roshan =


    True
    ShowVscroll_Roshan =


    True
    EndIf
    EndSub
    EndClass



    امید وارم تا اینجاش خوب پیش رفته باشه...

    حالا از کلاس بیاید بیرون و Build بگیرید

    حالا یه سری به جعبه ابزارت بزن ببین یه کنترول جدید به نام RoshanDataGrid اضافه شده

    اگه این شی رو روی فرم بیاری دوتا خاصیت بهش اضافه کردم به نام های ShowHscroll_Rosh وShowVscroll_Roshan که مقدار Boolean می گیره

    راستی شاید راه بهتر دیگه وجود داشته باشه...

    من همین رو بلد بودم به احتمال زیاد اساتید دیگه هم نظر هایی دارن بهتر یکم منتظر بمونی

    به هر حال اگه یکم مبتدی بود ببخشید.....




    آخرین ویرایش به وسیله rooshan2008 : دوشنبه 22 مهر 1387 در 11:10 صبح

  3. #3
    کاربر تازه وارد آواتار edisoon
    تاریخ عضویت
    بهمن 1381
    محل زندگی
    Iran
    پست
    54

    نقل قول: نمایش ScrollBars در دیتاگرید

    دوست عزیز ممنونم، آموزنده بود. هرچند کدی که نوشته بودی رو وقتی Copy/Paste کردم کلی غلط املایی داشت، اولش که فکر کردم با زبان #U نوشتی ;) ولی بعدا فهمیدم که نه بابا این VB خودمونه، ولی غلطهای املاییش رو که رفع کردم به یه نتیجه رسیدم که وقتی Grid رو در حالت Right To Left قرار میدهم مشکل دارد.

قوانین ایجاد تاپیک در تالار

  • شما نمی توانید تاپیک جدید ایجاد کنید
  • شما نمی توانید به تاپیک ها پاسخ دهید
  • شما نمی توانید ضمیمه ارسال کنید
  • شما نمی توانید پاسخ هایتان را ویرایش کنید
  •