PDA

View Full Version : سوال: کمک در خاصیت AutoComplete یک texbox



mohammad_118
سه شنبه 21 تیر 1390, 20:14 عصر
سلام من میخوام مقادیر خاصیت AutoComplete یک texbox را با دستور پر کنم ولی مشکل من اینه که مقادیر من اسم های فایل های توی یک folder هست . من تونستم لیست این فایل ها رو تو combobox اضافه کنم ولی وقتی می خوام تو AutoComplete مربوط به texbox این کار را بکنم error میده من کد های زیر را نوشتم : (خط آخر را چیکار کنم error میده )


DirectoryInfo dir = new DirectoryInfo(@"D:\sound\team\iran");
FileInfo[] files = dir.GetFiles();
this.comboBox1.Items.AddRange(files);
this.textBox3.AutoCompleteCustomSource.AddRange(fi les) ;

Farshid007
سه شنبه 21 تیر 1390, 20:41 عصر
autoCompleteSourse حتما باید customSourseباشه

Farshid007
سه شنبه 21 تیر 1390, 20:43 عصر
this.textBox3.AutoCompleteCustomSource.AddRange(fi les) ;
این اشتباهه

mohammad_118
سه شنبه 21 تیر 1390, 20:47 عصر
ببخشید من متوجه نمیشم میشه بیشتر توضیح بدید یعنی باید چی بنویسم ؟

Farshid007
سه شنبه 21 تیر 1390, 21:25 عصر
یعنی باید اینو بجای اون بنویسید:
string []Collection=System.IO.File.ReadAllLines(@"D:\sound\team\iran");
textBox1.AutoCompleteCustomSource.AddRange(Collect ion);

Farshid007
سه شنبه 21 تیر 1390, 21:36 عصر
ببین دوست عزیز به این خطا می گن خطای دستوری که VS با هر روشی که به ذهنش برسه نمیزاره که همچن خطا هایی به وجود بیاد(راهنمایی خودVS)

تو وقتی داری تایپ می کنی VS بهت کمک می کنه به این عکس نگاه کن:
72369
به این ها دقت کن
در ضمن وقتی تو برنامه ای که خطا داشت رو ران کردی یه ارور داد که گفت:
:cannot convert from 'System.IO.FileInfo[]' to 'string[]' l
خودت باید از روی اینا بفهمی که ارور جیه
اوکی؟

mohammad_118
سه شنبه 21 تیر 1390, 23:26 عصر
من میخواهم لیست فایل هایی رو که توی اون مسیر هست رو به AutoComplete اضافه کنم این کد که شما نوشتید برای یه فایل txt هست . اگه اشتباه نکنم ""ReadAllLines"" برای فایل هست من لیست فایل ها رو تونستم توی "files" بریزم مشکلم اینه که چطوری اونا رو توی لیست AutoComplete اضافه کنم :


DirectoryInfo dir = new DirectoryInfo(@"D:\sound\team\iran");
FileInfo[] files = dir.GetFiles();

Farshid007
چهارشنبه 22 تیر 1390, 12:33 عصر
string str = "";//رشته خالی
DirectoryInfo dir = new DirectoryInfo(@"D:\sound\team\iran");//در یافت اطلاعات مسیر
FileInfo[] files = dir.GetFiles();//در یافت فایل های مسیر
foreach (FileInfo objFileInfo in files)//چرخش در فایل ها
{
if (objFileInfo.FullName.EndsWith(".txt"))//دریافت فایل های متنی
{
StreamReader objstreamReader = new StreamReader(objFileInfo.FullName);
str += objstreamReader.ReadToEnd();//خواندن اطلاعت فایل
}
}
string[] Collection = str.Split('\n');//Split as New Line
//********
textBox1.AutoCompleteCustomSource.AddRange(Collect ion);//Add To Text Box AutoComplete
textBox1.AutoCompleteMode = AutoCompleteMode.Suggest;
textBox1.AutoCompleteSource = AutoCompleteSource.CustomSource;
//*******

MortezaGity
چهارشنبه 22 تیر 1390, 13:05 عصر
دوست عزیز چرا از فایل لیست بجاری کامبو باکس استفاده نمی کنی؟

Farshid007
چهارشنبه 22 تیر 1390, 13:18 عصر
منظورتو متوجه نمیشم؟
فایل لیست چیه؟
چه ربطی به کمبو باکس داره؟؟؟؟

mohammad_118
پنج شنبه 23 تیر 1390, 15:35 عصر
ببینید دوستان من میخوام لیست اسامی فایل هایی رو که توی اون مسیر هست رو به AutoComplete مربوط به یه texbox اضافه کنم مثلا توی مسیر d:\sound\team من 3 فایل با نام های file1 , file 2 , file3 دارم من میخوام اسم این 3 فایل و هر فایل دیگه ای که توی این مسیر هست به AutoComplete مربوط به texbox اضافه بشه

mohammad_118
پنج شنبه 23 تیر 1390, 18:31 عصر
دوستان من هنوز به نتیجه نرسیدم خواهشا کمک کنید .

Legend M.A.R
پنج شنبه 23 تیر 1390, 21:26 عصر
دوستان من هنوز به نتیجه نرسیدم خواهشا کمک کنید .
سلام دوست عزیز یکم بیشتر دقت کن کد دوستمون Farshid007 (http://barnamenevis.org/member.php?179717-Farshid007) رو به این شکل تغییر بده:
string[] g_fileInDirectory = Directory.GetFiles(@"D:\sound\team\iran");//در یافت فایل های موجود در مسیر
comboBox1.AutoCompleteCustomSource.AddRange(g_file InDirectory);//افزودن به تکمیل کننده خودکار
comboBox1.AutoCompleteMode = AutoCompleteMode.Suggest;
comboBox1.AutoCompleteSource = AutoCompleteSource.CustomSource;


ببخشید به جای comboBox از textbox استفاده کن درست میشه
در ضمن اگر به Directory گیر داد System.IO رو به using های فایلت اضافه کن

mohammad_118
جمعه 24 تیر 1390, 01:07 صبح
سلام دوست عزیز یکم بیشتر دقت کن کد دوستمون Farshid007 (http://barnamenevis.org/member.php?179717-Farshid007) رو به این شکل تغییر بده:

string[] g_fileInDirectory = Directory.GetFiles(@"D:\sound\team\iran");//در یافت فایل های موجود در مسیر
comboBox1.AutoCompleteCustomSource.AddRange(g_file InDirectory);//افزودن به تکمیل کننده خودکار
comboBox1.AutoCompleteMode = AutoCompleteMode.Suggest;
comboBox1.AutoCompleteSource = AutoCompleteSource.CustomSource;


دوست عزیز من از این روش استفاده کردم ولی هنگام تایپ توی texbox آدرس کامل مسیر رو میاره یعنی آدرس کامل مسیر فایل ها به AutoComplete اضافه شده من با کد زیر تونسته ام اسم فایل ها رو به تنهایی توی "files" بریزم ولی آبجکت files رو نمیدونم چطوری توی AutoComplete اضافه کنم که همخونی داشته باشه و ارور نده :


DirectoryInfo dir = new DirectoryInfo(@"D:\sound\team\iran");
FileInfo[] files = dir.GetFiles();

Legend M.A.R
جمعه 24 تیر 1390, 07:43 صبح
دوست عزیز من از این روش استفاده کردم ولی هنگام تایپ توی texbox آدرس کامل مسیر رو میاره یعنی آدرس کامل مسیر فایل ها به AutoComplete اضافه شده من با کد زیر تونسته ام اسم فایل ها رو به تنهایی توی "files" بریزم ولی آبجکت files رو نمیدونم چطوری توی AutoComplete اضافه کنم که همخونی داشته باشه و ارور نده :


DirectoryInfo dir = new DirectoryInfo(@"D:\sound\team\iran");
FileInfo[] files = dir.GetFiles();


در این صورت اینطوری می تونی فقط نام فایل رو بگیری
System.IO.FileInfo[] files = new System.IO.FileInfo[];
files[0].Name;

Salar Ashgi
جمعه 24 تیر 1390, 10:47 صبح
خیلی ساده :


using System.IO;

private void Form1_Load(object sender, EventArgs e)
{
textBox1.AutoCompleteMode = AutoCompleteMode.SuggestAppend;
textBox1.AutoCompleteSource = AutoCompleteSource.CustomSource;
string[] data = Directory.GetFiles("C:\\1");
AutoCompleteStringCollection list = new AutoCompleteStringCollection();
foreach (string s in data)
{
list.Add(Path.GetFileNameWithoutExtension(s));
}
textBox1.AutoCompleteCustomSource = list;
}


در این مثال من در درایو C فولدری بنام 1 دارم که داخلش 3 تا فایل با نام های file1,file2,file3 هست !

72474

موفق باشید ./