PDA

View Full Version : سوال: مرتب کردن محتوای listbox



nimaakbari
جمعه 01 شهریور 1392, 20:56 عصر
سلام به همه دوستان
یک تیکه کد برای جستجو در لیست باکس می خواستم که نتایج جستجو رو در لیست باکس فیلتر کنه
و فقط اونا رو نشون بده مثلا اگر کاربر حرف (ب) رو زد تمام ایندکسهایی که حرف (ب) در اونا هست بمونه و بقیه رو نشون نده.
خیلی ممنونم .در ضمن این لیست باکس به هیچ بانک اطلاعاتی متصل نیست.
109625

m_ali_gho
جمعه 01 شهریور 1392, 21:02 عصر
با این دستور میشه مرتط کرد


listbox1.Sorted = true;


برای پیدا کردن یک فیلد خاص هم یه تابع برای جستجو بنویس البته اگه منظورتون همینه

nimaakbari
جمعه 01 شهریور 1392, 21:28 عصر
دوستان تا حالا خیلی روش کار کردم ولی به نتیجه ای نرسیدم باید چکار کنم تا بتوانم این کار را انجام دهم؟:متفکر:

aliagamon
جمعه 01 شهریور 1392, 21:40 عصر
والا این تابع واسه سرچ:

private void FindAllOfMyString(string searchString)
{

ListBox1.SelectionMode = SelectionMode.MultiExtended;


int x = -1;

if (searchString.Length != 0)
{
do
{

x = ListBox1.FindString(searchString, x);

if (x != -1)
{

if (ListBox1.SelectedIndices.Count > 0)
{
if (x == ListBox1.SelectedIndices[0])
return;
}

ListBox1.SetSelected(x, true);
}
} while (x != -1);
}
}

تو رویداد keyup بنویس اینطوری:

ListBox1.SelectedIndex = -1;
FindAllOfMyString(textBox1.Text);

مهرداد صفا
جمعه 01 شهریور 1392, 22:22 عصر
با سلام.

listBox1.DataSource = listBox1.Items.Cast<string>().Where(item => item.StartsWith("b")).ToArray();

nimaakbari
جمعه 26 مهر 1392, 22:14 عصر
سلام می خواستم ایتم های موجود در یک لیست باکس را درون یک آرایه دخیره کنم روش های زیادی رفتم ولی هیچ کدام جواب نداد باید چگونه این کار را انجام دهم خیلی لازم دارم باید تا فردا آماده اش کنم لطفا جواب دهید

nimaakbari
جمعه 26 مهر 1392, 22:28 عصر
دوستان یعنی هیچ روشی وجود ندارد

esafb52
جمعه 26 مهر 1392, 22:56 عصر
اون روش هایی که رفتین رو توضیح بدین و کداش رو بذارین تا بفهمیم مشکل از کجاس

nimaakbari
جمعه 26 مهر 1392, 22:58 عصر
int count=(listBox1.Items.Count)-1;
string[] str = new string[count];
for (int i = 0; i < count; i++)
{
str[i] = listBox1.SelectedItems.ToString();
}



int count=(listBox1.Items.Count)-1;
string[] str = new string[count];
for (int i = 0; i < count; i++)
{
listBox1.Items.CopyTo(str, count);
}


خوب اینم کداش حالا میشه کمک کنید؟

esafb52
جمعه 26 مهر 1392, 23:03 عصر
int[] a = listBox1.Items.Cast<int>().ToArray();

اینو تست کن مثلا اینجا محتویات عدد هستند!!!
و اینجا رشته
string[] a = listBox1.Items.Cast<string>().ToArray();

و اینم برای کد خودتون و فریم ورک 2

string [] s= new string
[listBox1.Items.Count];
for (int i = 0; i < listBox1.Items.Count; i++)
{
s[i] = listBox1.Items[i].ToString();

}

khokhan
جمعه 26 مهر 1392, 23:16 عصر
int count=(listBox1.Items.Count)-1;
string[] str = new string[count];
for (int i = 0; i < count; i++)
{
str[i] = listBox1.SelectedItems.ToString();
}



int count=(listBox1.Items.Count)-1;
string[] str = new string[count];
for (int i = 0; i < count; i++)
{
listBox1.Items.CopyTo(str, count);
}


خوب اینم کداش حالا میشه کمک کنید؟

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using System.Collections;

namespace this_show
{
public partial class Form1 : Form
{

public Form1()
{
InitializeComponent();
listBox1.Sorted = true;
listBox1.SelectionMode = SelectionMode.MultiExtended;
}

private void Form1_Load(object sender, EventArgs e)
{


}

private void Form1_FormClosing(object sender, FormClosingEventArgs e)
{


}

private void button1_Click(object sender, EventArgs e)
{
ArrayList alCust = new ArrayList();

int c = listBox1.SelectedIndices.Count;
foreach (object selectedItem in this.listBox1.SelectedItems)
{
alCust.Add(selectedItem);
}

listBox2.DataSource = alCust;
}
}
}

nimaakbari
جمعه 26 مهر 1392, 23:16 عصر
با تشکر کدی که گفته بودید کار می کنه