PDA

View Full Version : سوال: در مورد Listbox



moin54
یک شنبه 19 خرداد 1387, 19:24 عصر
آيا امكانش هست كه داده هاي توليدشه از طريق كدهاي برنامه رو به شكل جدول توي ليست باكس ريخت؟
مثلا آرايه دو بعدي (x(i,j پس از مقدار گرفتن در برنامه، توي لسيت باكس در i رديف و j ستون مرتب چيده بشن. اگه ميشه در مورد كدش راهنمايي كنين. ممنونم

كاري كه خودم انجام دادم (چون بلد نبودم) داده هاي هر رديف رو به صورت فاصله دار به هم ملحق كردم يعني اينجوري:

List1.AddItem a1 & " " & b1 & " " & c1

ولي مشكلش اينه كه تعداد كاراكتر داده هاي زير هم مثلا a2,a1 برابر نيست در آخر اون نظمي كه مي خوام رو نداره

مهران رسا
یک شنبه 19 خرداد 1387, 20:41 عصر
تا اونجایی که من می دونم Listbox فقط می تونه اطلاعات رو زیر هم نشون و قابلیت نمایش ماتریسی نداره !

mehdad.koulab
یک شنبه 19 خرداد 1387, 20:53 عصر
سلام دوست عزیز فکر کنم ماتریس دو بعدی بشه ولی تو که نوشتی اون بالا سه بعدی چون سه تا تعریف کردی فکر کنم اگه دستور زیرو تایپ کنی ماتریس دو بعدی رو جواب بده
List1.AddItem ai ; bj
دقیق نمیدونم جواب میده یا نه ولی وقتی میخوای از یه ستون به یه ستون دیگر بپری فجر کنم این کارو بکنن. اگه جواب نداد شرمنده

اوبالیت به بو
یک شنبه 19 خرداد 1387, 23:34 عصر
بله مي تونيد. ListBox يه خاصيتي داره به اسم Columns كه كه مي تونيد بر اساس ماترسي كه ساختين براي ستون هاي ماتريس، ستون هاي List Box رو تنظيم كنيد.
ولي ميشه

moin54
دوشنبه 20 خرداد 1387, 00:12 صبح
بله مي تونيد. ListBox يه خاصيتي داره به اسم Columns كه كه مي تونيد بر اساس ماترسي كه ساختين براي ستون هاي ماتريس، ستون هاي List Box رو تنظيم كنيد.
ولي ميشه

اگه ممكنه يك خط كد براي مثال بالا بنويسين. از لطف شما ممنونم

اوبالیت به بو
دوشنبه 20 خرداد 1387, 02:58 صبح
بله مي تونيد. ListBox يه خاصيتي داره به اسم Columns كه كه مي تونيد بر اساس ماترسي كه ساختين براي ستون هاي ماتريس، ستون هاي List Box رو تنظيم كنيد.
ولي ميشه
فعلاً حرفم رو پس ميگيرم چون نتونستم با اين خاصيت كار بكنم ولي يادم هستش كه ما ميومديم اطلاعات ستون ها رو در Column اول مي نوشتيم و بعد ستون دوم در Column دوم و ... ولي مي دونم ميشه يعني اول Focus مي كرديم رويه Column و بعد مي نوشتيم.


اگه ممكنه يك خط كد براي مثال بالا بنويسين. از لطف شما ممنونم
حالا چون شمايي يك خط كد نمينويسيم چند خط مي نويسيم.
تقريباً همون كار هستش:

Option Explicit
Dim M(1 To 2, 1 To 2) As Integer
Dim i, j As Byte
Private Sub CmdPrint_Click()
For i = LBound(M) To UBound(M)
'Print M(i, 1) & Space(5) & M(i, 2)
MatrixLst.AddItem M(i, 1) & Space(5) & M(i, 2)
Next i
End Sub
Private Sub CmdRead_Click()
For i = LBound(M) To UBound(M)
For j = LBound(M) To UBound(M)
M(i, j) = InputBox("Pleas Enter Number of Row:" & i & "and Column:" & j)
Next j
Next i
End Sub

مي تونيد ماتريس رو بزرگتر هم بكنيد ولي اون موقع بايد قسمتهاي قرمز شده رو تغيير بديد.

مهران رسا
دوشنبه 20 خرداد 1387, 14:46 عصر
گفتم يك خط بنويس:لبخندساده:




Option Explicit

Mbt925
دوشنبه 20 خرداد 1387, 14:52 عصر
توضیحی در مورد خصوصیت Column :

در حالت پیش فرض مقدار این خصوصیت 0 هست ، یعنی همه ی آیتم ها زیر هم اضافه خواهند شد و در نهایت یک اسکرول بار عمودی نمایش داده میشه.

این خصوصیت مقادیر 1 تا n هم می تونه بگیره :
در این حالت بعد از پر شدن ستون اول مقادیر در ستون بعدی قرار می گیرن.

برای مثال اگه مقدار این خصوصیت رو 4 قرار بدین ، و اعداد 1 تا 100 رو به لیست باکس اضافه کنید ، شکل زیر رو خواهید داشت :