انجمن های تخصصی علوم رایانه و هنرهای دیجیتال
  • صفحه اصلی
  • جستجو
  • لیست اعضا
  • تقویم
  • راهنما




سی جی آریا

رسانه تخصصی آموزش هنرهای دیجیتال



ورود به انجمن ثبت نام کنید
ورود
نام کاربری:
گذرواژه‌: گذرواژه‌تان را فراموش کرده‌اید؟
 

Home انجمن های تخصصی علوم رایانه و هنرهای دیجیتال رایانه برنامه نویسی | طراحی وب برنامه نویسی c# | سی‌شارپ سورس پیشنهاد دهنده کلمات در سی شارپ

امتیاز موضوع:
  • 1 رأی - میانگین امتیازات: 5
  • 1
  • 2
  • 3
  • 4
  • 5
حالت‌های نمایش موضوع
سورس پیشنهاد دهنده کلمات در سی شارپ
Mohsen Omidvar آفلاین
مدیر ارشد
*******
ارسال‌ها: 1,259

موضوع‌ها: 634
تاریخ عضویت: Apr 2012
اعتبار: 198
سپاس ها 400
سپاس شده 2999 بار در 869 ارسال
#1
27-06-2014، 12:29 PM
یکی از مشکلات بسیار مهم در ورود اطلاعات در بیشتر برنامه های طراحی شده ، خطای انسانیِ چند بار وارد کردن اطلاعات هست. یکی از راه حل های جلوگیری از این کار، چک کردن مشخصه وارد شده توسط کاربر است. اما در این روش کاربر پس از وارد کردن کامل اطلاعات از وجود این مشخصه مطلع می شود. این روش وقت کاربر را هدر داده و باعث تقابل بیشتر کاربر با برنامه می شود.
اما روش بهتری برای جلوگیری از این کار وجود دارد. در دات نت وقتی از کنترل ComboBox استفاده می کنیم، اگر خصیصه DropDownStyle بر روی DropDown تنظیم شده باشد، با وارد کردن هر کاراکتر در ComboBox لیست تمام آیتم هایی که با آن کاراکتر شروع می شوند به عنوان پیشنهاد نشان داده می شود. اما در مورد کنترل تکست باکس برای این کار ۲ روش وجود دارد. یک روش استفاده از AutoComplete هست (که برخی از کامپوننت ها از این خصیصه پشتیبانی نمی کنند) و دیگری ساخت دستی این روش برای تکست باکس و هر کنترل دیگری است.
در این روش من از دیتابیس نمونه Northwind و SQLServer و LINQ To SQL استفاده کردم.
برای ساخت پیشنهاد دهنده کلمات در سی شارپ اول یک کنترل تکست باکس بر روی فرم بگذارید. سپس نام آن را به txtName تغییر دهید. با استفاده از کد های زیر اول یک نمونه از دیتابیس و یک ListBox می سازیم :
کد:
Control focused;
static string conn = Suggest.Properties.Settings.Default.NorthwindConnectionString;
DataClasses1DataContext myContext;
ListBox myList;
در مرحله بعد در هنگام ساخت فرم و بعد از تابع InitializeComponent کد های زیر را وارد می کنیم:
کد:
myList = new ListBox();
myList.DoubleClick += new EventHandler(myList_DoubleClick);
myContext = new DataClasses1DataContext(conn);
در خط دوم برای ایجاد تابع دبل کلیک کنترل Listbox فرم یک EventHandler ایجاد کردیم.
در تابع TextChanged کنترل تکست باکس کد زیر را وارد می کنیم:
کد:
private void txtName_TextChanged(object sender, EventArgs e)
{
    Control c = sender as Control;
    focused = c;
    myList.Size = new System.Drawing.Size(100, 200);
    myList.Location = new Point(c.Left, c.Top + c.Height);
    this.Controls.Add(myList);
    myList.BringToFront();
    myList.Items.Clear();
    myList.Items.AddRange(GetSuggestions(c.Text));
    if (myList.Items.Count > 0)
        myList.Visible = true;
    else
        myList.Visible = false;
}
برای ساخت تابع GetSuggestions به صورت زیر عمل می کنیم:
کد:
private String[] GetSuggestions(string part)
{
    DataClasses1DataContext myContext = new DataClasses1DataContext(conn);
    return myContext.Customers.Where(n => n.ContactName.StartsWith(part))
        .OrderBy(n => n.ContactName)
        .Select(n => n.ContactName).ToArray();
}
در واقع این تابع با استفاده از LINQ به دیتابیس و جدول Customers وصل شده و در ستون ContactName گشته و نام افرادی که با پارامتر رشته ای part شروع شوند رو بر می گردونه.
در آخر هم برای اینکه وقتی کاربر بر روی یک نام در ListBox کلیک کرد، نام کامل در تکست باکس نمایش داده شود از کد زیر استفاده می کنیم:
کد:
void myList_DoubleClick(object sender, EventArgs e)
{
    if (myList.SelectedIndex > 0)
    {
        focused.Text = myList.SelectedItem.ToString();
        myList.Hide();
    }
}
 *شما قادر به دیدن لینک ها نیستید ثبت نام کنید یا وارد حساب خود شوید تا بتوانید لینک ها را ببینید*
خورشید باش که اگر خواستی بر کسی نتابی نتوانی.
ارسال‌ها
پاسخ
« قدیمی‌تر | جدیدتر »


موضوع‌های مشابه…
موضوع نویسنده پاسخ بازدید آخرین ارسال
Rainbow دانلود سورس کد چند برنامه به زبان سی شارپ C# Mohsen Omidvar 1 5,561 09-07-2016، 10:05 PM
آخرین ارسال: Mohsen Omidvar
  یادگیری برنامه نویسی سی شارپ zahra110 0 3,459 01-09-2015، 12:42 PM
آخرین ارسال: zahra110
  اجرای یک برنامه و خروج از یک برنامه و اجرای یک فایل در سی شارپ Mohsen Omidvar 0 7,556 28-11-2014، 05:09 PM
آخرین ارسال: Mohsen Omidvar
  دانلود کتابهای آموزش برنامه نویسی سی شارپ C# Mohsen Omidvar 0 4,760 17-05-2013، 07:48 PM
آخرین ارسال: Mohsen Omidvar
  آموزش طراحی و کدنویسی فرم جستجو سی شارپ Mohsen Omidvar 0 5,090 04-04-2013، 06:52 PM
آخرین ارسال: Mohsen Omidvar

  • مشاهده‌ی نسخه‌ی قابل چاپ
پرش به انجمن:


کاربرانِ درحال بازدید از این موضوع: 1 مهمان
مکان تبلیغ شما
تمامی حقوق این سایت مربوط به انجمن های تخصصی علوم رایانه و هنرهای دیجیتال میباشد
حالت خطی
حالت موضوعی