PDA

View Full Version : سوال: چگونگی نمایش لیست



Hamishebahar
چهارشنبه 20 خرداد 1388, 18:22 عصر
سلام چطوری میشه تو محیط نت همچین لیستی رو نمایش داد:
http://i44.tinypic.com/4t6ps6.jpg

ممنون.

Hamishebahar
پنج شنبه 21 خرداد 1388, 00:22 صبح
سلام چطوری میشه تو محیط نت همچین لیستی رو نمایش داد:
http://i44.tinypic.com/4t6ps6.jpg

ممنون.

چرا همیشه کسی جواب سوالای منو نمیده؟یعنی اینجا کسی برنامه نویس نیست؟

pesar irooni
پنج شنبه 21 خرداد 1388, 03:25 صبح
توسط یه DataGridView که نوع ستون اولش ComboBox باشه و تغییر style دیتاگرید تا به شکل مورد نظر تبدیل بشه.

NewFoxStudent
پنج شنبه 21 خرداد 1388, 12:07 عصر
فکر کنم باید یه کنترل شخصی برای اینکار ایجاد کنید

elahe1364
پنج شنبه 21 خرداد 1388, 12:32 عصر
http://barnamenevis.org/forum/showthread.php?p=732541#post732541

seven7777777
پنج شنبه 21 خرداد 1388, 12:53 عصر
همون طور که pesar irooni (http://barnamenevis.org/forum/member.php?u=54941) گفت کافیه در دیتا گریدت ستونی که می خوای به این شکل باز بشه از نوع کمبو به دیتاگریدت اضافه کنی و مقادیرشم که مسلما از دیتابیس می گیری .

NewFoxStudent
پنج شنبه 21 خرداد 1388, 14:27 عصر
فکر کنم منظور ایشون خاصیت AutoComplete باشه نه ComboBox

Hamishebahar
پنج شنبه 21 خرداد 1388, 22:19 عصر
سلام و از همه دوستان ممنونم ولی من نمیتونم داخل ComboBox چیزی تایپ کنم فقط میتونم آیتمشو انتخاب کنم.خواهشاً کمک کنین.

pesar irooni
جمعه 22 خرداد 1388, 02:59 صبح
کمبو باکسی که تو دیتاگرید هست خیلی از امکانات کمبو باکس معمولی رو نداره. مثلا تو کمبو معمولی علاوه بر این که میتونی بنویسی میتونی با AutoCompleteMode و AutoCompleteSource و ... حالتی قرار بدی که با نوشتن یه چیز یه لیست برات باز بشه (درست مثل شکل).
من پیشنهاد میکنم اول ببینی راهی هست یا نه و اگه راهی پیدا نکردی یه کمبو معمولی بساز و invisible کن و هر وقت کاربر روی ستون مورد نظر کلیک کرد دقیقا همونجا visible کن جوری که کاربر فک کنه تو همین گرید داره کار میکنه. حالا هر کاری میتونی باهاش بکنی و وقتی کاربر اطلاعات رو وارد کرد و تموم شد دوباره invisible کن و مقدارش رو بریز تو مقدار ستون گرید. (یک نوع کلک رشتی)

Hamishebahar
شنبه 23 خرداد 1388, 00:37 صبح
سلام دوستان از کمکتون ممنونم.من با خاصیت AutoCompleteMode و AutoCompleteSource تونستم دقیقاً مثل همون شکل دریت کنم ولی متاسفانه نمدونم چطوره تو دیتا گراید ازش استفاده کنم؟؟؟

منظورم اینه که وقتی کاربر روی Cell مثلاً 0 کلیک میکنه کمبو فکوس میشه و انتخاب میشه تا مقدار در اون تایپ بشه ولی بعد اینکه Tab رو زد باید بره رو Cell بعدی که نمیتونم اینکارو بکنم و یه چیز دیگه اینکه نمیتونم خاصیت X , Y رو درست دربیارم چون وقتی تعداد Row ها زیاد میشه و Scroll که فعال میشه نمیشه درست X و Y رو محاسبه کرد خاهش میکنم در مورد این دو موضوع کمکم کنید...

Hamishebahar
شنبه 23 خرداد 1388, 01: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, 12:12 عصر
دوست عزیز این کمبو این امکان رو داره که هم به بانک bind بشه و هم بشه داخلش چیزی تایپ کرد؟

Hamishebahar
شنبه 23 خرداد 1388, 18:26 عصر
دوست عزیز این کمبو این امکان رو داره که هم به بانک bind بشه و هم بشه داخلش چیزی تایپ کرد؟

بله امکانش هست ولی اگه میخوای چیزی داخلش تایپ کنی بهت پیشنهاد میکنم همون کد بالا رو بدی بهش و اطلاعات بانک رو بهش اضافه کنی. من که اینکارو کردم.
وقتی ColumnType یک Column رو برابرDataGridViewComboBoxColumn قرار بدی در قسمت خاصیتش چندتا خاصیت داره که:
DataSource جدول شماست و DisplayMember و ValueMember نام فیلد هستند.
موفق باشید و سربلند.