PDA

View Full Version : نحوه تمایز بین دو نفر که اسم مشابهی دارند، در صورت استفاده از ویژگی AutoComplete برای TextBox



sajad_3dmax
دوشنبه 01 تیر 1394, 12:51 عصر
باسلام.
بنده برای یکی از تکست باکسهای روی فرمم که نام و نام خانوادگی رو نشون میده از ویژگی AutoComplete استفاده کردم . حالا اگه دو نفر نامشون مثل هم باشه کاربر چطور باید اونها رو از هم تمیز بده.

Mahmoud Zaad
دوشنبه 01 تیر 1394, 13:04 عصر
سلام
یک مشخصه دیگه مثل، id یا کد شخص که یونیک باشه یا حتی کد ملی.

sajad_3dmax
دوشنبه 01 تیر 1394, 13:31 عصر
بله میدونم. اما کاربر توی تکست باکس نام رو وارد میکنه خب. فرض کنید کاربر وارد میکنه علی و دنبال علی احمدی میگرده. نرم افزار میاد براش دو تا علی احمدی نشون میده. از کجا باید تفاوت بین اون ها رو با هم تشخصی بده

Mahmoud Zaad
دوشنبه 01 تیر 1394, 14:12 عصر
گفتم دیگه:لبخند: کد ملی یا شناسه شخص رو هم باید لود کنید. البته برای زیبایی و داشتن امکانات بیشتر یک یوزر کنترل برای این کار بسازید.

sajad_3dmax
دوشنبه 01 تیر 1394, 15:25 عصر
من اومدم اینطوری عمل کردم، هر نامی رو که کاربر وارد و انتخاب کرد ، کد ملی و سایر مشخصات مهم اون شخص رو هم میخونه و تو چند تا textBox دیگه نمایش میده تا کاربر با دیدن و چک کردن اون اطلاعات از انتخاب گزینه خودش مطمئن بشه. منظور شما همین شکلی بود؟

MehdiElexal
دوشنبه 01 تیر 1394, 16:08 عصر
بهتره که طرف تشخیص نده که درسته یا نه ! خود شما تشخیص بده
یعنی نام و نام خانوادگی + کد ملی (دوستمون گفتن ) بگیرید که فقط اطلاعات خود شخص به دست بیاد ، اینطوری بعدا به مشکلات بیش از 2 اسم برخورد میکنید که درست نیست افراد دیگه از هویت سایر کاربران مطلع بشن یا راحت با زدن نام و نام خانوادگی کل اطلاعات یه بی نوایی رو نشون بده !
موفق باشید

Mahmoud Zaad
دوشنبه 01 تیر 1394, 16:19 عصر
ببینید شما مگه نمی تونید همزمان سه تا فیلد کد شخص، نام، نام خانوادگی رو بخونید؟ خب این سه تا رو پشت سر هم نشون بدید! (راه غیر اصولی) یک یوزر کنترل بسازید که وقتی کاربر حروف رو تایپ کرد، یه لیست ویو، دیتاگریدویو، لیست باکس و ... ظاهر بشه که چند ستونه هم باشه که در این کنترل، کد شخص، نام و نام خانوادگی و ... رو نمایش بدید. (راه اصولی)

reza_ali202000
دوشنبه 01 تیر 1394, 22:54 عصر
خوب کسی که اسامی رو وارد میکنه وقتی دید اسم تکراری میخواد وارد کنه نام پدر شخص رو هم توی پرانتز وارد کنه که مشخص بشه
مثلا: رضا ناصری(حسن)
رضا ناصری(کاظم)
اینجوری بهتره

MehdiElexal
سه شنبه 02 تیر 1394, 10:59 صبح
خوب کسی که اسامی رو وارد میکنه وقتی دید اسم تکراری میخواد وارد کنه نام پدر شخص رو هم توی پرانتز وارد کنه که مشخص بشه
مثلا: رضا ناصری(حسن)
رضا ناصری(کاظم)
اینجوری بهتره
در این حالت هم امکان تشابه وجود داره ، با اینکه تنوع زیاده ولی فامیلی های یکسان با نام پدر یکسان بسیار زیاده بهترین راه چک کردن با یه آی دی یونیک مثل کد ملی هست ...

sajad_3dmax
سه شنبه 02 تیر 1394, 12:09 عصر
من میخوام وقتی لیست باز میشه کاربر روی هر کدوم که با ماوس قرار گرفت کد ملیش بصورت toolTip ظاهر بشه. آیا میشه اینکار رو انجام داد؟لطفا راهنماییم کنین

reza_ali202000
سه شنبه 02 تیر 1394, 14:00 عصر
در این حالت هم امکان تشابه وجود داره ، با اینکه تنوع زیاده ولی فامیلی های یکسان با نام پدر یکسان بسیار زیاده بهترین راه چک کردن با یه آی دی یونیک مثل کد ملی هست ...

خوب میتونه کد ملی رو توی پرانتز بنویسه. ولی معمولا کسی کد ملیش رو یادش نیست.

sajad_3dmax
چهارشنبه 03 تیر 1394, 06:45 صبح
من میخوام وقتی لیست باز میشه کاربر روی هر کدوم که با ماوس قرار گرفت کد ملیش بصورت toolTip ظاهر بشه. آیا میشه اینکار رو انجام داد؟لطفا راهنماییم کنین

MehdiElexal
چهارشنبه 03 تیر 1394, 12:50 عصر
textBox1.tooltip="مشخصات";

alireza264
چهارشنبه 03 تیر 1394, 13:05 عصر
سلام بنظرم بهتره از یه listvew استفاده کنی که چند مشخصه رو داشته باشه مثل سال تولد - محل تولد و ..
شبیه نمونه زیر
132570

mahlake
چهارشنبه 03 تیر 1394, 14:08 عصر
سلام بنظرم بهتره از یه listvew استفاده کنی که چند مشخصه رو داشته باشه مثل سال تولد - محل تولد و ..
شبیه نمونه زیر
132570

سلام آقا علیرضا این عکسی که گذاشتید رو میشه یه سمپل از برنامه اش بگذارید که من که خیلی حرفه ای نیستم نحوه کد زدنش رو و منطقش رو یاد بگیرم؟ البته اگه امکانش هست:لبخند::لبخند::لبخند::لبخ د::لبخند::لبخند:

alireza264
چهارشنبه 03 تیر 1394, 15:29 عصر
درروش عکس بالا یک usercontrol با استفاده از style ساخته شده و از ICollectionView استفاده میکنه
اما اول یک کلاس ایجاد کن که حاوی فیلد های مورد نظر باشه

public class Person
{
public string Cod_key { get; set; }
public string Fname { get; set; }
public string LName { get; set; }
public string Father { get; set; }
public string LocatLiving { get; set; }
}

یک لیست از روی کلاس بساز

List<Person> listperson = new List<Person>();


listperson رو با listview بایند کن و با اطلاعات پرش کن

وبعد با استفاده از ICollectionView باید listperson رو فیلتر کنی

mahlake
چهارشنبه 03 تیر 1394, 20:17 عصر
درروش عکس بالا یک usercontrol با استفاده از style ساخته شده و از ICollectionView استفاده میکنه
اما اول یک کلاس ایجاد کن که حاوی فیلد های مورد نظر باشه

public class Person
{
public string Cod_key { get; set; }
public string Fname { get; set; }
public string LName { get; set; }
public string Father { get; set; }
public string LocatLiving { get; set; }
}

یک لیست از روی کلاس بساز

List<Person> listperson = new List<Person>();


listperson رو با listview بایند کن و با اطلاعات پرش کن

وبعد با استفاده از ICollectionView باید listperson رو فیلتر کنی

:قهقهه::قهقهه::قهقهه::قهقهه:: ریه::گریه::گریه::گریه::قهقهه: :قهقهه::قهقهه::قهقهه:

وای دیگه دارم دیوونه میشم...

:گریه::گریه::گریه::گریه::قهقه ::قهقهه::قهقهه::قهقهه::گریه:: ریه::گریه::گریه:

داداش من دقیقا مشکلم همون 2 خط آخره که بلد نیستم کاش میشد یه سنپل کد میزاشتی که من مشکلم حل بشه... میدونم توقع زیادیه ولی فهم سنپل کد بیشتره من هفته هاست درگیر مشکلات این چنینی در برنامه هام هستم و هنوز هیچ کدوم حل نشده...

alireza264
چهارشنبه 03 تیر 1394, 21:42 عصر
سلام روش بایند کردن رو برگردی پیدا میکنی اما فیلتر کردن


ICollectionView collectionView = CollectionViewSource.GetDefaultView(listperson);

if (String.IsNullOrEmpty(searchPhrase))
collectionView.Filter = null;

else
{
collectionView.Filter = o =>
{
Person item = (Person)o;

bool result = item.Fname.Contains(searchPhrase, StringComparison.OrdinalIgnoreCase) ;
}
}