View Full Version : سوال: چگونگی نمایش لیست
Hamishebahar
چهارشنبه 20 خرداد 1388, 19:22 عصر
سلام چطوری میشه تو محیط نت همچین لیستی رو نمایش داد:
http://i44.tinypic.com/4t6ps6.jpg
ممنون.
Hamishebahar
پنج شنبه 21 خرداد 1388, 01:22 صبح
سلام چطوری میشه تو محیط نت همچین لیستی رو نمایش داد:
http://i44.tinypic.com/4t6ps6.jpg
ممنون.
چرا همیشه کسی جواب سوالای منو نمیده؟یعنی اینجا کسی برنامه نویس نیست؟
pesar irooni
پنج شنبه 21 خرداد 1388, 04:25 صبح
توسط یه DataGridView که نوع ستون اولش ComboBox باشه و تغییر style دیتاگرید تا به شکل مورد نظر تبدیل بشه.
NewFoxStudent
پنج شنبه 21 خرداد 1388, 13:07 عصر
فکر کنم باید یه کنترل شخصی برای اینکار ایجاد کنید
elahe1364
پنج شنبه 21 خرداد 1388, 13:32 عصر
http://barnamenevis.org/forum/showthread.php?p=732541#post732541
seven7777777
پنج شنبه 21 خرداد 1388, 13:53 عصر
همون طور که pesar irooni (http://barnamenevis.org/forum/member.php?u=54941) گفت کافیه در دیتا گریدت ستونی که می خوای به این شکل باز بشه از نوع کمبو به دیتاگریدت اضافه کنی و مقادیرشم که مسلما از دیتابیس می گیری .
NewFoxStudent
پنج شنبه 21 خرداد 1388, 15:27 عصر
فکر کنم منظور ایشون خاصیت AutoComplete باشه نه ComboBox
Hamishebahar
پنج شنبه 21 خرداد 1388, 23:19 عصر
سلام و از همه دوستان ممنونم ولی من نمیتونم داخل ComboBox چیزی تایپ کنم فقط میتونم آیتمشو انتخاب کنم.خواهشاً کمک کنین.
pesar irooni
جمعه 22 خرداد 1388, 03:59 صبح
کمبو باکسی که تو دیتاگرید هست خیلی از امکانات کمبو باکس معمولی رو نداره. مثلا تو کمبو معمولی علاوه بر این که میتونی بنویسی میتونی با AutoCompleteMode و AutoCompleteSource و ... حالتی قرار بدی که با نوشتن یه چیز یه لیست برات باز بشه (درست مثل شکل).
من پیشنهاد میکنم اول ببینی راهی هست یا نه و اگه راهی پیدا نکردی یه کمبو معمولی بساز و invisible کن و هر وقت کاربر روی ستون مورد نظر کلیک کرد دقیقا همونجا visible کن جوری که کاربر فک کنه تو همین گرید داره کار میکنه. حالا هر کاری میتونی باهاش بکنی و وقتی کاربر اطلاعات رو وارد کرد و تموم شد دوباره invisible کن و مقدارش رو بریز تو مقدار ستون گرید. (یک نوع کلک رشتی)
Hamishebahar
شنبه 23 خرداد 1388, 01:37 صبح
سلام دوستان از کمکتون ممنونم.من با خاصیت AutoCompleteMode و AutoCompleteSource تونستم دقیقاً مثل همون شکل دریت کنم ولی متاسفانه نمدونم چطوره تو دیتا گراید ازش استفاده کنم؟؟؟
منظورم اینه که وقتی کاربر روی Cell مثلاً 0 کلیک میکنه کمبو فکوس میشه و انتخاب میشه تا مقدار در اون تایپ بشه ولی بعد اینکه Tab رو زد باید بره رو Cell بعدی که نمیتونم اینکارو بکنم و یه چیز دیگه اینکه نمیتونم خاصیت X , Y رو درست دربیارم چون وقتی تعداد Row ها زیاد میشه و Scroll که فعال میشه نمیشه درست X و Y رو محاسبه کرد خاهش میکنم در مورد این دو موضوع کمکم کنید...
Hamishebahar
شنبه 23 خرداد 1388, 02:21 صبح
سلام بچه ها خسته نباشید ممنونم از pesar irooni (http://www.barnamenevis.org/forum/member.php?u=54941) و NewFoxStudent (http://www.barnamenevis.org/forum/member.php?u=60929) و seven7777777 (http://www.barnamenevis.org/forum/member.php?u=38006) و elahe1364 (http://www.barnamenevis.org/forum/member.php?u=16215) و همه عزیزانی که همراهی کردن بالاخره موفق شدم ممنونم از همتون.
حالا به شما هم میگم تا یه روز به کارتون بیاد.
اینا رو بالای فرم بزارین:
private AutoCompleteStringCollection codeCompletionSource;
private AutoCompleteStringCollection omschrijvingCompletionSource;
حالا یه دیتا گراید بزارید و دوتا Column بهش اضافه کنید و تو خاصیت EditingControlShowing کد زیر رو بزارید:
if (dgvItems.CurrentCellAddress.X == 0)
{
TextBox txt = e.Control as TextBox;
txt.AutoCompleteCustomSource = this.codeCompletionSource;
txt.AutoCompleteMode = AutoCompleteMode.SuggestAppend;
txt.AutoCompleteSource = AutoCompleteSource.CustomSource;
}
else if (dgvItems.CurrentCellAddress.X == 1)
{
TextBox txt = e.Control as TextBox;
txt.AutoCompleteCustomSource = this.omschrijvingCompletionSource;
txt.AutoCompleteMode = AutoCompleteMode.SuggestAppend;
txt.AutoCompleteSource = AutoCompleteSource.CustomSource;
}
حالا کد زیر رو تو Form Load بزارید:
codeCompletionSource = new AutoCompleteStringCollection();
codeCompletionSource.Add("a");
codeCompletionSource.Add("ab");
codeCompletionSource.Add("c");
codeCompletionSource.Add("x");
omschrijvingCompletionSource = new AutoCompleteStringCollection();
omschrijvingCompletionSource.Add("q");
omschrijvingCompletionSource.Add("qq");
omschrijvingCompletionSource.Add("qa");
اجرا کنید و حال کنید قربانتن یا علی.
elahe1364
شنبه 23 خرداد 1388, 13:12 عصر
دوست عزیز این کمبو این امکان رو داره که هم به بانک bind بشه و هم بشه داخلش چیزی تایپ کرد؟
Hamishebahar
شنبه 23 خرداد 1388, 19:26 عصر
دوست عزیز این کمبو این امکان رو داره که هم به بانک bind بشه و هم بشه داخلش چیزی تایپ کرد؟
بله امکانش هست ولی اگه میخوای چیزی داخلش تایپ کنی بهت پیشنهاد میکنم همون کد بالا رو بدی بهش و اطلاعات بانک رو بهش اضافه کنی. من که اینکارو کردم.
وقتی ColumnType یک Column رو برابرDataGridViewComboBoxColumn قرار بدی در قسمت خاصیتش چندتا خاصیت داره که:
DataSource جدول شماست و DisplayMember و ValueMember نام فیلد هستند.
موفق باشید و سربلند.
vBulletin® v4.2.5, Copyright ©2000-1403, Jelsoft Enterprises Ltd.