PDA

View Full Version : مبتدی: خاصیت AutoComplete در تکست باکس



ali_habibi1384
دوشنبه 28 دی 1388, 16:25 عصر
چطور از AutoComplet در TextBoxباید استفاده کرد؟
میخوام متنهایی که قبلا وارد شده رو واسم لیست کنه.

sia_2007
دوشنبه 28 دی 1388, 17:13 عصر
خب اولین قدم اینه که متنهای وارد شده به Text Box رو یک جا ذخیره کنی؛
این که کدوم متنها رو ذخیره کنی به سیاست خودت بر میگرده؛ مثل پس از Validated و یا پس از فشار دادن دکمه Save.
البته اگه میخوای آخرین متن وارد شده رو بیاری Application Tag خیلی قشنگتره؛
لکن برای متن های وارد شده خب اونها رو باید در یک جایی ذخیره کنی.
مثلا دیتابیس و یا یه فایل XML و یا یه Text خالی ؛
اگه تو دیتابیس بذاری و دستورات SQL رو خوب بلد باشی
و یا XML و با LINQ to XML آشنا باشی خیلی خوبه چون بعدا تو خوندن و نوشتن میتونی یک سری سیاست اعمال کنی
اگه هم هیچ کدوم که فایل Text ساده در خدمت شماست.
---
حال مثلا با فرض دیتابیس داریم :

Settings //


txtUserName.AutoCompleteSource = AutoCompleteSource.CustomSource;
txtUserName.AutoCompleteMode = AutoCompleteMode.SuggestAppend;


// Fill the Data Table From the Database
UOper = new UserOper(); // my BL Method for Users
try
{
DUser = UOper.UserList(); // DUser is a DataSet
}
catch (BLCommandExp ex)
{
MessageBox.Show(ex.ErrMSG);
}

UserDataTable = DUser.Tables[0]; // Get Data From Dataset to Data Table
foreach (var item in UserDataTable.AsEnumerable())
{
txtUserName.AutoCompleteCustomSource.Add(item.Item Array[1].ToString());
// Comment
{

AliRezaPro
دوشنبه 28 دی 1388, 17:14 عصر
ببینید

http://www.dreamincode.net/forums/showtopic34785.htm
اتو کاپلیت بواسطه ی تکستی که قبلا وارد شده است
namespace WindowsApplication1
{
public partial class Form1 : Form
{
AutoCompleteStringCollection autoComplete = new AutoCompleteStringCollection();
public Form1()
{
InitializeComponent();
}

private void button1_Click(object sender, EventArgs e)
{
autoComplete.Add(textBox1.Text);
MessageBox.Show("hello");
}

private void Form1_Load(object sender, EventArgs e)
{
textBox1.AutoCompleteMode = AutoCompleteMode.SuggestAppend;
textBox1.AutoCompleteSource = AutoCompleteSource.CustomSource;
//auto.Add(textBox1.Text);
textBox1.AutoCompleteCustomSource = autoComplete;
}
}
}
اتو کامپلیت با فتچ کردن دیتا از دیتابیس
namespace AutoCompleteTextBox
{

public partial class frmAuto : Form
{
public string strConnection =
ConfigurationManager.AppSettings["ConnString"];
AutoCompleteStringCollection namesCollection =
new AutoCompleteStringCollection();
public frmAuto()
{
InitializeComponent();
}

private void frmAuto_Load(object sender, EventArgs e)
{
SqlDataReader dReader;
SqlConnection conn = new SqlConnection();
conn.ConnectionString = strConnection;
SqlCommand cmd = new SqlCommand();
cmd.Connection = conn;
cmd.CommandType = CommandType.Text;
cmd.CommandText =
"Select distinct [Name] from [Names]" +
" order by [Name] asc";
conn.Open();
dReader = cmd.ExecuteReader();
if (dReader.HasRows == true)
{
while (dReader.Read())
namesCollection.Add(dReader["Name"].ToString());

}
else
{
MessageBox.Show("Data not found");
}
dReader.Close();

txtName.AutoCompleteMode = AutoCompleteMode.Suggest;
txtName.AutoCompleteSource = AutoCompleteSource.CustomSource;
txtName.AutoCompleteCustomSource = namesCollection;

}
private void btnCancel_Click(object sender, EventArgs e)
{
Application.Exit();
}
private void btnOk_Click(object sender, EventArgs e)
{
MessageBox.Show("Hope you like this example");
}

}
}

alvandlinux
جمعه 17 شهریور 1391, 08:52 صبح
سلام man7tomani جان مال من این خطا رو میده
Error 1 The name 'ConfigurationManager' does not exist in the current context C:\Documents and Settings\hadi\My Documents\Visual Studio 2008\Projects\WindowsFormsApplication2\WindowsForm sApplication2\Form1.cs 23 1 WindowsFormsApplication2