PDA

View Full Version : انتخاب Column مورد نظر از لیست



Sahand87
یک شنبه 09 بهمن 1390, 11:32 صبح
سلام
اگر بخواهیم از یک LIST که دارای سه Column است Column دوم را در یک Text تایپ نماید با چه دستوری انجام می شود

متشکر

mahmood744
یک شنبه 09 بهمن 1390, 12:20 عصر
منظور از لیست یعنی Listview ?
در این صورت دارید
Column 1= ListView1.ListItems(i).Text
Column 2=ListView1.ListItems(i).SubItems(1)
Column 3=ListView1.ListItems(i).SubItems(2)
Column 4=ListView1.ListItems(i).SubItems(3)

موفق باشی

Sahand87
یک شنبه 09 بهمن 1390, 12:23 عصر
منظورم Listview نبود همان LIST معمولی VB رامیگم.

vbhamed
یک شنبه 09 بهمن 1390, 13:24 عصر
سلام

بايد ارتفاع ليست رو بدست بياريد، ارتفاع هر سطر هم با توجه به نوع و سايز فونت بدست بياريد بعد ارتفاع ليست رو تقسيم بر ارتفاع هر سطر كنيد تا ببينيد تو هر ستون چند آيتم جا ميشه، بعد مي‌تونيد آيتم هاي ستون دوم رو بخونيد

براي بدست آوردن ارتفاع هر سطر يك PictureBox رو فرم بزاريد و فونت و سايز اون رو مثل ليست تنظيم كنيد بعد با دستور Pictue1.TextHeight("A") ارتفاع هر سطر بدست مياد

Sahand87
یک شنبه 09 بهمن 1390, 14:59 عصر
ببخشید دوست عزیز مثل اینکه من منظورم را درست بیان نکردم.
در ListBox اگر ما در رویداد کلید آن بخواهیم با هر بار کلیک رکورد انتخابی (مثلا ستون دوم رکورد انتخاب شده) در یک تکس باکس درج شود با جه دستوری انجام می شود .
راستش من با دستور (1) Text1.Text = list1.Column انجام دادم که متاسفانه با خطا مواجه می شود .

kitcat_m18
یک شنبه 09 بهمن 1390, 20:54 عصر
سلام،
فکر کنم منظورت این باشه:

اگه درست حدس زدم بهتر بود سوالت رو اینطور مطرح می کردی:
چطوری می تونم آیتم انتخاب شده در ListBox رو تشخیص بدم؟؟؟

Private Sub Form_Load()
Dim i As Integer

For i = 1 To 10
List1.AddItem (i)
Next i
End Sub

Private Sub List1_Click()
Text1.Text = List1.Text
End Sub

موفق باشی :لبخندساده:

Sahand87
دوشنبه 10 بهمن 1390, 01:02 صبح
سلام،
فکر کنم منظورت این باشه:

اگه درست حدس زدم بهتر بود سوالت رو اینطور مطرح می کردی:
چطوری می تونم آیتم انتخاب شده در ListBox رو تشخیص بدم؟؟؟

Private Sub Form_Load()
Dim i As Integer

For i = 1 To 10
List1.AddItem (i)
Next i
End Sub

Private Sub List1_Click()
Text1.Text = List1.Text
End Sub

موفق باشی :لبخندساده:

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

kitcat_m18
دوشنبه 10 بهمن 1390, 09:13 صبح
سلام،
تا اونجایی که من می دونم در لیست باکس VB دسترسی به ردیف های موجود نداری چون در حقیقت ردیفی ایجاد نمیشه.

موفق باشی :لبخندساده:

Sahand87
دوشنبه 10 بهمن 1390, 19:55 عصر
سلام،
تا اونجایی که من می دونم در لیست باکس VB دسترسی به ردیف های موجود نداری چون در حقیقت ردیفی ایجاد نمیشه.

موفق باشی :لبخندساده:

سلام
جرا وجود ندارد! مثلا اگر کسی بخواهد ازردیف انتخابی ListBox فقط به ستون دوم یا ستون خاص دیگری دسترسی پیدا کنه امکان نداره . و فقط کل ردیف لیست باکس در دسترس است! متوجه نشدم
با اجازه یک نمونه ذکر می کنم :
یک لیست باکس داریم در ردیف انتخابی (برای نمونه ردیف 7) دارای 4 ستون است . ستون اول: نام ستون دوم: نام خانوادگی ستون سوم: شماره شناسنامه ستون چهارم: تاریخ تولد
حالا با کلید برروی ردیف هفتم فقط دسترسی به ستون سوم یعنی شماره شناسنامه را می خواهیم ونیازی به اطلاعات ستونهای اول و دوم و چهارم نداریم این امکان ندارد؟

kitcat_m18
دوشنبه 10 بهمن 1390, 23:25 عصر
سلام


سلام
جرا وجود ندارد! مثلا اگر کسی بخواهد ازردیف انتخابی ListBox فقط به ستون دوم یا ستون خاص دیگری دسترسی پیدا کنه امکان نداره . و فقط کل ردیف لیست باکس در دسترس است! متوجه نشدم
با اجازه یک نمونه ذکر می کنم :
یک لیست باکس داریم در ردیف انتخابی (برای نمونه ردیف 7) دارای 4 ستون است . ستون اول: نام ستون دوم: نام خانوادگی ستون سوم: شماره شناسنامه ستون چهارم: تاریخ تولد
حالا با کلید برروی ردیف هفتم فقط دسترسی به ستون سوم یعنی شماره شناسنامه را می خواهیم ونیازی به اطلاعات ستونهای اول و دوم و چهارم نداریم این امکان ندارد؟

ببین مطمئنی داری لیست باکس رو میگی؟؟؟
من فکر می کنم شما منظورت گرید باشه.
یه نمونه آماده کن و ضمیمه کن.

موفق باشی :لبخندساده:

Sahand87
سه شنبه 11 بهمن 1390, 00:16 صبح
سلام

منظور من همان لیست باکس است.
در نمونه پیوست با انتخاب هر رکورد فقط ستون دوم يعني نام خانوادگي همان رکورد با ايندکس مربوطه در تکس باکس تايپ شود.
بطور مثال اگر ستون سوم انتخاب شود باید در Text1 ستون دوم لیست باکس که همان نام خانوادگی3 است تایپ شود.

IamOverlord
سه شنبه 11 بهمن 1390, 00:23 صبح
سلام

منظور من همان لیست باکس است.
در نمونه پیوست با انتخاب هر رکورد فقط ستون دوم يعني نام خانوادگي همان رکورد با ايندکس مربوطه در تکس باکس تايپ شود.
بطور مثال اگر ستون سوم انتخاب شود باید در Text1 ستون دوم لیست باکس که همان نام خانوادگی3 است تایپ شود.

در ListBox ای که شما گذاشتید فقط یک ستون وجود دارد و در همان یک ستون محتویات چند ستون رو نوشتید.

Sahand87
سه شنبه 11 بهمن 1390, 02:05 صبح
در ListBox ای که شما گذاشتید فقط یک ستون وجود دارد و در همان یک ستون محتویات چند ستون رو نوشتید.

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

vbhamed
سه شنبه 11 بهمن 1390, 03:21 صبح
سلام

اينم جواب نمونه شما
ولي با وجود اينهمه گريدهاي خوب چه نيازي به استفاده از ليست باكس هست ؟، ضمن اينكه اگر طول نامتون زياد بشه نظمش بهم مي‌ريزه

milad222
یک شنبه 23 بهمن 1390, 22:32 عصر
سلام.
اگه از Data Grid View استفاده کنید فکر کنم کارتون راحت تر بشه.