این کد برای منتقل کردن آیتم شماره (itemIndex) از listView1 به listView2 هست.
listView2.Items.Add(listView1.Items[itemIndex]);
این کد برای منتقل کردن آیتم شماره (itemIndex) از listView1 به listView2 هست.
listView2.Items.Add(listView1.Items[itemIndex]);
[QUOTE=ASHKANLAEI;2425571]این کد برای منتقل کردن آیتم شماره (itemIndex) از listView1 به listView2 هست.
listView2.Items.Add(listView1.Items[itemIndex]);[/QUOTE
سلام بازم نشد
مشکل من اینه که ی جستجو میکنم داخل لیست ویو 1 ی آیتم رو پیدا میکنه فقط همین آیتم رو بدون ساب آیتمها داخل لیست ویو 2 نمایش میده . کل آیتم و ساب آیتمها رو نمایش نمیده. ببخشید من مبتدی هستم اگه منظورم رو بد بیان میکنم شرمنده
Untitled.jpg[QUOTE=the king;2425594]سلام . ی عکس گذاشتم تا بهتر متوجه مشکل بشید
اول تکست باکسهای نام و فامیل و شماره را وارد کرده دکمه ورود را میزنیم تکستهای داخل تکست باکسها به لیست ویو 1 اضافه میشود . بعد داخل تکست باکس جستجو یک حرف را تایپ میکنیم اگر شامل هر یک از لیست ویو های جدول 1 باشد را داخل لیست ویور2 نمایش دهد . الان کلمه حاوی حرف وارد شده را پیدا میکند ولی فقط همان کلمه را داخل ستون نام لیست ویور2 نمایش میدهد و تمام لیست و ساب آیتمها را نمایش نمیدهد.
خواسته من اینه که لیست ویو که کلمه پیدا شده داخل آن است را کامل همراه ساب فورمها در لیست ویو 2 نمایش دهد.
متاسفانه مشکل با شیوه فوق حل نشد
آخرین ویرایش به وسیله alinoori76 : یک شنبه 24 آذر 1398 در 15:33 عصر دلیل: اصلاح
[QUOTE=alinoori76;2425625]Untitled.jpgوقتی کدی که نوشتید رو ارائه نمی کنید راهنمایی کردن برای تغییرش هم دشوار میشه.
private void button2_Click(object sender, EventArgs e)
{
var search = textBoxSearch.Text.Trim();
if (search.Length == 0)
{
return;
}
foreach (ListViewItem item in listView1.Items)
{
if (item.Text.IndexOf(search, StringComparison.CurrentCultureIgnoreCase) >= 0)
{
listView1.Items.Remove(item);
listView2.Items.Add(item);
continue;
}
foreach (ListViewItem.ListViewSubItem subItem in item.SubItems)
{
if (subItem.Text.IndexOf(search, StringComparison.CurrentCultureIgnoreCase) == -1)
{
continue;
}
listView1.Items.Remove(item);
listView2.Items.Add(item);
break;
}
}
}
formmm.jpg public partial class Form1 : Form
{
public string li;
public string li2;
public Form1()
{
InitializeComponent();
}
private void ButtonVOROOD_Click(object sender, EventArgs e)
{
if (TextBoxNAM.Text == "" || TextBoxFAMIL.Text == "" || TextBoxTEL.Text == "")
{
label5.Visible = true;
this.label5.Text = "لطفا فیلدهای فوق را وارد کنید";
}
else
{
List<string> s = new List<string>() { TextBoxNAM.Text, TextBoxFAMIL.Text, TextBoxTEL.Text };
ListViewItem a = new ListViewItem(s.ToArray());
ListView1.Items.Add(a);
TextBoxNAM.Text = "";
TextBoxFAMIL.Text = "";
TextBoxTEL.Text = "";
label5.Visible = false;
//int dd = ListView1.Items.Count;
//label8.Text = dd.ToString();
}
}
private void TextBoxSEARCH_TextChanged(object sender, EventArgs e)
{
if (TextBoxSEARCH.Text != "")
{
for (int i = 0; i < ListView1.Items.Count; i++)
{
for (int j = 0; j < ListView1.Columns.Count; j++)
{
li = ListView1.Items[i].SubItems[j].Text;
bool a = li.Contains(TextBoxSEARCH.Text);
if (a == true)
{
// li = ListView1.Items[i].SubItems[j].Text;
ListView2.Items.Add(li);
}
}
}
}
else
{
ListView2.Items.Clear();
}
}
private void TextBoxSEARCH_TextChanged_1(object sender, EventArgs e)
{
}
}
}
شما li رو Add می کنید که یک SubItem ئه، باید بجای li اون ListView1.Items[i] رو Add کنید که Item ئه و شامل همه SubItem ها هم میشه.
خودش رو هم نه، یک کپی اش رو، با Clone ازش کپی میگیرید.
بعد Add کردن هم یک ;break اضافه کنید تا از حلقه for j خارج بشه.
private void TextBoxSEARCH_TextChanged(object sender, EventArgs e)
{
ListView2.Items.Clear();
if (TextBoxSEARCH.TextLength == 0)
{
return;
}
for (int i = 0; i < ListView1.Items.Count; i++)
{
for (int j = 0; j < ListView1.Columns.Count; j++)
{
li = ListView1.Items[i].SubItems[j].Text;
bool a = li.Contains(TextBoxSEARCH.Text);
if (a)
{
ListView2.Items.Add((ListViewItem)ListView1.Items[i].Clone());
break;
}
}
}
}