PDA

View Full Version : طریقه حذف آیتم دلخواه از لیست باکس



salehvasaleh
سه شنبه 05 مرداد 1389, 14:09 عصر
دوستان چطوری می شه کاری کرد که آیتمهایی که درون یک لیست باکس قرار گرفته اند بعد از انتخاب آیتم دلخواه با زدن دکمه ای پاک شوند.(از درون لیست باکس پاک شوند) دستورات دکمه چی باید باشه؟اگر بخواهیم حذف فیزیکی بشوند و از هارد هم پاک بشوند باید چیکار کرد؟ممنون

صباح فتحی
سه شنبه 05 مرداد 1389, 14:25 عصر
دوست عزیز یه دکمه و لیست رو فرم بزار و این کد ها رو کپی کن تا نتیجشو ببینی


private void button1_Click(object sender, EventArgs e)
{
listBox1.Items.Remove(listBox1.SelectedItem);
}
private void Form1_Load(object sender, EventArgs e)
{
for (int i = 0; i <10; i++)
{
listBox1.Items.Add(i.ToString());
}
}

mmd2009
سه شنبه 05 مرداد 1389, 14:30 عصر
با سلام

پیشنهاد میکنم از چک لیست باکس (checkedListBox) استفاده بکنی

salehvasaleh
سه شنبه 05 مرداد 1389, 14:31 عصر
دوست عزیز یه دکمه و لیست رو فرم بزار و این کد ها رو کپی کن تا نتیجشو ببینی


privatevoid button1_Click(object sender, EventArgs e)
{
listBox1.Items.Remove(listBox1.SelectedItem);
}
privatevoid Form1_Load(object sender, EventArgs e)
{
for (int i = 0; i <10; i++)
{
listBox1.Items.Add(i.ToString());
}
}


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

salehvasaleh
سه شنبه 05 مرداد 1389, 14:35 عصر
با سلام

پیشنهاد میکنم از چک لیست باکس (checkedListBox) استفاده بکنی
ممنون این هم فکر جالبیه. اگر از این دستور استفاده کنم برای دستور حذفش می بایست چی بنویسم؟

صباح فتحی
سه شنبه 05 مرداد 1389, 14:36 عصر
برای حذف فایل یا پوشه از هادر از دستور زیر استفاده کن:


System.IO.Directory.Delete("C:\\sabah.jpg");

salehvasaleh
سه شنبه 05 مرداد 1389, 14:39 عصر
برای حذف فایل یا پوشه از هادر از دستور زیر استفاده کن:


System.IO.Directory.Delete("C:\\sabah.jpg");


منظورم حذف آیتمیه که از لیست باکس انتخاب شده.

صباح فتحی
سه شنبه 05 مرداد 1389, 14:41 عصر
خب کاری نداره شما باید اون مسیریو که در لیست باکس انتخاب شده رو توی این تابع قرار بدی تا از هارد خذف شه بعد یه بار لیست رو ریفرش کنید...همین

salehvasaleh
سه شنبه 05 مرداد 1389, 14:45 عصر
خب کاری نداره شما باید اون مسیریو که در لیست باکس انتخاب شده رو توی این تابع قرار بدی تا از هارد خذف شه بعد یه بار لیست رو ریفرش کنید...همین
ممنون از توضیحتون می شه بگید باید چه دستوری بنویسم؟ من اینو نوشتم که ظاشتباهه ولی نمی دونم اشتباهش کجاست.
System.IO.Directory.Delete(checkedListBox1.Selecte dItem);

صباح فتحی
سه شنبه 05 مرداد 1389, 14:53 عصر
عزیزم با دستور زیر مثلا فایل ها ی یک پوشه رو تو لیست باکس میزاریم:


listBox1.Items.AddRange(System.IO.Directory.GetDir ectories("C:\\"));



بعد مقدار تکس اون عنصر انتخابی که در بالا گفتم رو توی تابع حذف میزاری و تموم:


System.IO.Directory.Delete(listBox1.SelectedItem.T oString());

صباح فتحی
سه شنبه 05 مرداد 1389, 15:00 عصر
راستی اون دستور بالا واسه حذف پوشه بود ها..
اگه میخای فایل حذف کنی باید از کد زیر استفاده کنی:


System.IO.File.Delete("path");

salehvasaleh
سه شنبه 05 مرداد 1389, 15:07 عصر
راستی اون دستور بالا واسه حذف پوشه بود ها..
اگه میخای فایل حذف کنی باید از کد زیر استفاده کنی:


System.IO.File.Delete("path");

پس برای حذف آیتم انتخاب شده از چک باکس باید اینو بنیوسم:؟؟
System.IO.File.Delete(checkedListBox1.SelectedItem .ToString()); a

و برای رفرش کردن چک باکس باید چی بنویسم؟

صباح فتحی
سه شنبه 05 مرداد 1389, 15:19 عصر
بله دیگه واسه اینکه مقدار ایتم انتخابی رو بدونی از :


checkedListBox1.SelectedItem.ToString();

استفاده میکنی.برای رفرش هم از کد زیر استفاده کن:


checkedListBox1.Refresh();

salehvasaleh
سه شنبه 05 مرداد 1389, 15:26 عصر
بله دیگه واسه اینکه مقدار ایتم انتخابی رو بدونی از :


checkedListBox1.SelectedItem.ToString();

استفاده میکنی.برای رفرش هم از کد زیر استفاده کن:


checkedListBox1.Refresh();

ممنون از توضیحتون. اما یه مشکل من الان کدهای زیر رو واسه دکمه حذف برنامم گذاشتم :
listBox1.Items.Remove(listBox1.SelectedItems.ToStr ing());
listBox1.Items.Remove(listBox1.SelectedItem);

listBox1.Refresh();
مشکلش اینه که با زدن دکمه از لیست باکس حذف می شه ولی حفذ فیزیکی نمی شه چرا این طوری شده؟ممنون

صباح فتحی
سه شنبه 05 مرداد 1389, 15:32 عصر
ممنون از توضیحتون. اما یه مشکل من الان کدهای زیر رو واسه دکمه حذف برنامم گذاشتم :
listBox1.Items.Remove(listBox1.SelectedItems.ToStr ing());
listBox1.Items.Remove(listBox1.SelectedItem);

listBox1.Refresh();
مشکلش اینه که با زدن دکمه از لیست باکس حذف می شه ولی حفذ فیزیکی نمی شه چرا این طوری شده؟ممنون

شما که کدشو ننوشتی:متفکر:

salehvasaleh
سه شنبه 05 مرداد 1389, 15:34 عصر
شما که کدشو ننوشتی:متفکر:
کدها رو که نوشتم مشکلشون چیه؟

صباح فتحی
سه شنبه 05 مرداد 1389, 15:49 عصر
یه دکمه و لیست بزار رو فرم:من الان خودم نوشتم و درست کارکرد(هواست به مسیرباشه)


private void Form1_Load(object sender, EventArgs e)
{
listBox1.Items.AddRange(System.IO.Directory.GetFil es("d:\\lk"));
}
private void button2_Click(object sender, EventArgs e)
{
System.IO.File.Delete(listBox1.SelectedItem.ToStri ng());

listBox1.Items.Remove(listBox1.SelectedItem);


}

salehvasaleh
سه شنبه 05 مرداد 1389, 15:56 عصر
یه دکمه و لیست بزار رو فرم:من الان خودم نوشتم و درست کارکرد(هواست به مسیرباشه)


privatevoid Form1_Load(object sender, EventArgs e)
{
listBox1.Items.AddRange(System.IO.Directory.GetFil es("d:\\lk"));
}
privatevoid button2_Click(object sender, EventArgs e)
{
System.IO.File.Delete(listBox1.SelectedItem.ToStri ng());

listBox1.Items.Remove(listBox1.SelectedItem);


}

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

صباح فتحی
سه شنبه 05 مرداد 1389, 15:59 عصر
واسه تک انتخابی فکرنکم بشه...یعنی تاحالا من امتحان نکردم.واسه دوبار کلیک هم اطلاعی ندارم والا:d

salehvasaleh
سه شنبه 05 مرداد 1389, 16:04 عصر
واسه تک انتخابی فکرنکم بشه...یعنی تاحالا من امتحان نکردم.واسه دوبار کلیک هم اطلاعی ندارم والا:d
ممنون از توضیحت. یک سوال دیگه برام پیش اومد می شه کاری کرد که آدرس هر عکسی که انتخاب می شه توی یه اسمی به نام فرضا عکس 1 ، عکس 2 و....... بریزه؟ طوری که فرضا وقتی عکس1رو از توی چک باکس انتخاب کرد عکس 1 که آدرسه درونش ریخته شده نمایش داده بشه؟

mmd2009
چهارشنبه 06 مرداد 1389, 04:51 صبح
ممنون این هم فکر جالبیه. اگر از این دستور استفاده کنم برای دستور حذفش می بایست چی بنویسم؟

یک چک لیست باکس اضافه کن به فرمت و دوتا دکمه بذار یکی برای انتخاب عکس ها و قرار دادن اون در چک لیت باکس و دیگری برای حذف فایل هایی که تو چک لیست باکس قرار دارن

کد مربوط به دکمه ی انتخاب عکس ها :




OpenFileDialog o = new OpenFileDialog();

o.Multiselect = true;

o.ShowDialog();

foreach (string c in o.FileNames)
{
checkedListBox1.Items.Add(c);
}


کد مربوط به حذف فایل های که چک اونا True شده



int i=0;
foreach (string c in checkedListBox1.Items)
{
if (checkedListBox1.GetItemChecked(i) == true)
{
System.IO.File.Delete(c);
}
i++;
}



از این روش استفاده بکنی بهتره :چشمک:

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

StepUp360
جمعه 18 شهریور 1390, 09:28 صبح
با سلام

دوستان، اگه بخواهیم بعد از پاک شدن فایل، فایل پاک شده به سطل آشغال(Recycle bin) منتقل بشه باید از چه کدی استفاده کنیم. ممنون.:متفکر: