نوشته شده توسط
پرستو پارسایی
کلا رنکش مثل قبلش میشه یعنی در اصل Deselect میشه های لایت یا خاکستری نمیمونه
پس مشکل تون ربطی به وضعیت HideSelection نداره. از اونجایی که خود به خود Selection اش رو از دست نخواهد داد یا جایی در کد دارید مستقیم یا غیر مستقیم محتوای ListView رو از نو پر می کنید یا در رخدادی کاری شبیه به ()listView1.SelectedItems.Clear رو انجام میدید.
مثلا اگر صرفا همچین کدی باشه، انتقال Focus به textBox1 یا تایپ کردن داخلش منجر به از دست رفتن Selection داخل ListView نمیشه :
Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
ListView1.Items.Add(TextBox1.Text)
End Sub
اما اگر همچین کدی رو اضافه کنم تا textBox1 اون Focus رو گرفت انتخاب داخل ListView میپره :
Private Sub TextBox1_Enter(sender As Object, e As EventArgs) Handles TextBox1.Enter
ListView1.SelectedItems.Clear()
End Sub
گاهی اوقات به دلیلی ما ناچار به پر کردن مجدد لیستی میشیم. اینجور مواقع میشه قبل از پر کردن مجدد انتخاب قبلی رو نگهداریم تا بعد از پر کردن مجدد اگر امکانش هست انتخاب قبلی برگردونده بشه :
Dim selection(ListView1.SelectedIndices.Count) As Integer
ListView1.SelectedIndices.CopyTo(selection, 1)
ListView1.SelectedItems.Clear()
ReloadList()
Dim i As Integer
For i = 1 To UBound(selection)
ListView1.SelectedIndices.Add(selection(i))
Next
بدون دیدن کد در همین حد میتونم نظر بدم.