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

نام تاپیک: تغییر اندازه listview با توجه به تعداد ایتم ها پر شده....

  1. #1
    کاربر دائمی آواتار yekta64
    تاریخ عضویت
    مهر 1387
    محل زندگی
    ایران زمین
    سن
    38
    پست
    562

    تغییر اندازه listview با توجه به تعداد ایتم ها پر شده....

    سلام دوستان
    من در فرمم یه کنترل listview دارم که داده هاش رو از دیتابیس می خونم حالا می خوام سایز این کنترل با توجه به تعداد ایتم هاش تغییر کنه چطور باید این کارو رو انجام بدم؟؟؟؟

  2. #2
    کاربر تازه وارد آواتار mohammad.moosaei
    تاریخ عضویت
    مهر 1388
    محل زندگی
    kernel32.dll
    سن
    36
    پست
    79

    نقل قول: تغییر اندازه listview با توجه به تعداد ایتم ها پر شده....

    منظورتون رو درست متوجه نشدم اما اگه Listview در یک Panel خاص کاملا Dock باشه خودش اتوماتیک سایزش رو تغییر میده .

    لطفا بیشتر توضیح بدین

  3. #3
    کاربر دائمی آواتار vbworm
    تاریخ عضویت
    شهریور 1387
    محل زندگی
    خانه شیطان
    سن
    43
    پست
    198

    نقل قول: تغییر اندازه listview با توجه به تعداد ایتم ها پر شده....


    ListBox1.Height =
    CDbl(ListBox1.Items.Count + 1) * CDbl(ListBox1.ItemHeight)

  4. #4
    کاربر دائمی
    تاریخ عضویت
    مهر 1387
    محل زندگی
    تهران
    سن
    34
    پست
    608

    Thumbs up نقل قول: تغییر اندازه listview با توجه به تعداد ایتم ها پر شده....

    سلام.

    خسته نباشین. میدونم میخواین چیکار کنین و فکر کنم تا حالا به جوابتون رسیده باشین ولی این کارتون درست نیست. اینو دوستانه بهتون میگم.

  5. #5
    کاربر دائمی آواتار vbworm
    تاریخ عضویت
    شهریور 1387
    محل زندگی
    خانه شیطان
    سن
    43
    پست
    198

    نقل قول: تغییر اندازه listview با توجه به تعداد ایتم ها پر شده....

    نقل قول نوشته شده توسط ACorvinus مشاهده تاپیک
    سلام.

    خسته نباشین. میدونم میخواین چیکار کنین و فکر کنم تا حالا به جوابتون رسیده باشین ولی این کارتون درست نیست. اینو دوستانه بهتون میگم.
    دوستمون درست میگه، چون اگه آیتمهای لیست باکست زیاد باشه، تهش از فرم میزنه بیرون

  6. #6
    کاربر دائمی آواتار yekta64
    تاریخ عضویت
    مهر 1387
    محل زندگی
    ایران زمین
    سن
    38
    پست
    562

    نقل قول: تغییر اندازه listview با توجه به تعداد ایتم ها پر شده....

    نقل قول نوشته شده توسط vbworm مشاهده تاپیک

    ListBox1.Height = CDbl(ListBox1.Items.Count + 1) * CDbl(ListBox1.ItemHeight)

    سلام
    دوست عزیز من از لیست باکس نمی خوام استفاده کنم بلکه می خوام از لیست ویو استفاده کنم

    ممنون میشم راهنمایی کنید

  7. #7
    کاربر دائمی آواتار yekta64
    تاریخ عضویت
    مهر 1387
    محل زندگی
    ایران زمین
    سن
    38
    پست
    562

    نقل قول: تغییر اندازه listview با توجه به تعداد ایتم ها پر شده....

    نقل قول نوشته شده توسط ACorvinus مشاهده تاپیک
    سلام.

    خسته نباشین. میدونم میخواین چیکار کنین و فکر کنم تا حالا به جوابتون رسیده باشین ولی این کارتون درست نیست. اینو دوستانه بهتون میگم.
    مرسی دوست عزیز
    ببیند من اگه سایز لیست ویو رو از اول به طور ثابت تعیین کنم مشکلی که پیش میاد این هستش که:
    اگه تعداد دادهای که من قرار باشه توی این کنترل قرار بدم یک باشه بقیه فضای این کنترل خالی می مونه و این اصلا قشنگ نیست

    من داده ها رو از دیتابیس می خونم و در هر مرحله تعداد متفاوتی داده در لیست ویو قرار می گیره

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

  8. #8
    کاربر دائمی آواتار yekta64
    تاریخ عضویت
    مهر 1387
    محل زندگی
    ایران زمین
    سن
    38
    پست
    562

    نقل قول: تغییر اندازه listview با توجه به تعداد ایتم ها پر شده....

    نقل قول نوشته شده توسط mohammad.moosaei مشاهده تاپیک
    منظورتون رو درست متوجه نشدم اما اگه Listview در یک Panel خاص کاملا Dock باشه خودش اتوماتیک سایزش رو تغییر میده .

    لطفا بیشتر توضیح بدین

    سلام مرسی دوست عزیز
    یعنی اگه لیست ویو رو در یه پنل قرار بدم و داده ها رو از دیتابیس بخونم و در لیست ویو قرار بدم با توجه به تعداد ایتم های قرار گرفته د ر لیست ویو سایز اون تغییر می کنه؟؟؟؟

    یا به عبارتی سایز پنل با این کار تغییر می کنه البته اگه پنل رو autosize بذارم؟؟؟؟؟
    مرسی

  9. #9
    کاربر تازه وارد آواتار mohammad.moosaei
    تاریخ عضویت
    مهر 1388
    محل زندگی
    kernel32.dll
    سن
    36
    پست
    79

    نقل قول: تغییر اندازه listview با توجه به تعداد ایتم ها پر شده....

    نقل قول نوشته شده توسط yekta64 مشاهده تاپیک
    سلام مرسی دوست عزیز
    یعنی اگه لیست ویو رو در یه پنل قرار بدم و داده ها رو از دیتابیس بخونم و در لیست ویو قرار بدم با توجه به تعداد ایتم های قرار گرفته د ر لیست ویو سایز اون تغییر می کنه؟؟؟؟

    یا به عبارتی سایز پنل با این کار تغییر می کنه البته اگه پنل رو autosize بذارم؟؟؟؟؟
    مرسی
    سلام دوست عزیز :

    من منظور شما رو خوب متوجه نشده بودم ، اما حلا این کد رو براتون آماده کردم شاید به دردتون بخوره :

    راستی هنگام استفاده از این کد سایز ListBox رو فقط به اندازه ردیف اول قرار بدین .

    و نکته دوم این که این کد فقط برای ListBox در حالت LargeIcon صادق است .

    و نکته آخر این که منم فکر میکنم که این کاری که میخوایت انجام بدین زیاد منطقی نیست .

    Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click

    If (ListView1.Height + ListView1.Top < ListView1.Parent.Height - 5) Then

    Static IncreasHeigth As Boolean = False
    Static width As Integer = 0

    If (ListView1.Items.Count > 0) Then

    Dim query = From item As ListViewItem In ListView1.Items _
    Where item.Bounds.Height Select item.Bounds.Height

    Dim maxHeigth As Integer = query.ToArray.Max

    If (IncreasHeigth) And (ListView1.Height + (maxHeigth * 2) + ListView1.Top < ListView1.Parent.Height - 5) Then

    ListView1.Height += (maxHeigth * 2)
    width = 0

    IncreasHeigth = False

    End If

    ListView1.Items.Add("Items")

    Else

    ListView1.Items.Add("Items")

    Dim query = From item As ListViewItem In ListView1.Items _
    Where item.Bounds.Height Select item.Bounds.Height

    Dim maxHeigth As Integer = query.ToArray.Max

    If maxHeigth + ListView1.Items(0).Bounds.Top > ListView1.Height Then

    ListView1.Height += (2 * maxHeigth)

    End If

    End If

    width += ListView1.Items(0).Bounds.Width

    If (ListView1.Width - ListView1.Items(0).Bounds.Width <= width) Then
    IncreasHeigth = True
    End If

    Else

    ListView1.Items.Add("Items")

    End If

    End Sub

  10. #10
    کاربر دائمی آواتار yekta64
    تاریخ عضویت
    مهر 1387
    محل زندگی
    ایران زمین
    سن
    38
    پست
    562

    نقل قول: تغییر اندازه listview با توجه به تعداد ایتم ها پر شده....

    نقل قول نوشته شده توسط mohammad.moosaei مشاهده تاپیک
    سلام دوست عزیز :

    من منظور شما رو خوب متوجه نشده بودم ، اما حلا این کد رو براتون آماده کردم شاید به دردتون بخوره :

    راستی هنگام استفاده از این کد سایز ListBox رو فقط به اندازه ردیف اول قرار بدین .

    و نکته دوم این که این کد فقط برای ListBox در حالت LargeIcon صادق است .

    و نکته آخر این که منم فکر میکنم که این کاری که میخوایت انجام بدین زیاد منطقی نیست .

    Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click

    If (ListView1.Height + ListView1.Top < ListView1.Parent.Height - 5) Then

    Static IncreasHeigth As Boolean = False
    Static width As Integer = 0

    If (ListView1.Items.Count > 0) Then

    Dim query = From item As ListViewItem In ListView1.Items _
    Where item.Bounds.Height Select item.Bounds.Height

    Dim maxHeigth As Integer = query.ToArray.Max

    If (IncreasHeigth) And (ListView1.Height + (maxHeigth * 2) + ListView1.Top < ListView1.Parent.Height - 5) Then

    ListView1.Height += (maxHeigth * 2)
    width = 0

    IncreasHeigth = False

    End If

    ListView1.Items.Add("Items")

    Else

    ListView1.Items.Add("Items")

    Dim query = From item As ListViewItem In ListView1.Items _
    Where item.Bounds.Height Select item.Bounds.Height

    Dim maxHeigth As Integer = query.ToArray.Max

    If maxHeigth + ListView1.Items(0).Bounds.Top > ListView1.Height Then

    ListView1.Height += (2 * maxHeigth)

    End If

    End If

    width += ListView1.Items(0).Bounds.Width

    If (ListView1.Width - ListView1.Items(0).Bounds.Width <= width) Then
    IncreasHeigth = True
    End If

    Else

    ListView1.Items.Add("Items")

    End If

    End Sub

    سلام
    مرسی دوست عزیز
    میشه در مورد این کد یه مقدار توضیح بدید اخه این کد لیست ویو رو تغییر سایز نمی ده ؟؟؟؟

  11. #11
    کاربر تازه وارد آواتار mohammad.moosaei
    تاریخ عضویت
    مهر 1388
    محل زندگی
    kernel32.dll
    سن
    36
    پست
    79

    نقل قول: تغییر اندازه listview با توجه به تعداد ایتم ها پر شده....

    نقل قول نوشته شده توسط yekta64 مشاهده تاپیک
    سلام
    مرسی دوست عزیز
    میشه در مورد این کد یه مقدار توضیح بدید اخه این کد لیست ویو رو تغییر سایز نمی ده ؟؟؟؟
    شما یک Listview بساز و بعد این کد رو توی رویداد کلیک یک دکمه امتحان کن . بعد ببین جواب میده یا نه؟

    فقط یادتون باشه که ListView در حالت LargeIcon باشه و اندازه اون هم فقط به اندازه ردیف اول item ها باشه .

    این کد به طور خلاصه میاد هر بار چک می کنه که اگه یک ردیف از Itemها پر شدند Listview رو Resize می کنه .

    یک نکته :

    اگه بتونی هنگام هر بار اضافه کردن itemها تشخیص بدی که Scroll ظاهر شده یا نه به راحتی می تونی به هدفت برسی . دیگه نیازی به کد های بالا هم نیست . من که نتونستم این کار رو انجام بدم ببیبن اگه تونیست کدش رو بزار تا برات تکمیل کنم .

  12. #12
    کاربر دائمی
    تاریخ عضویت
    مهر 1387
    محل زندگی
    تهران
    سن
    34
    پست
    608

    Thumbs up نقل قول: تغییر اندازه listview با توجه به تعداد ایتم ها پر شده....

    پیغام خصوصی رو حتما بخون.

    ListView.rar

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

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