Вопрос: ListView, Highlight строку | Добавлено: 01.09.10 22:40 |
Ответы | Всего ответов: 46 |
Номер ответа: 1 Автор ответа: ![]() ![]() ![]() ![]() Вопросов: 26 Ответов: 295 |
Профиль | Цитата | #1 | Добавлено: 02.09.10 00:22 |
|
Номер ответа: 2 Автор ответа: ![]() ![]() ![]() ![]() ICQ: 192496851 Вопросов: 75 Ответов: 3178 |
Профиль | Цитата | #2 | Добавлено: 02.09.10 08:09 |
хайлатиться - подсвечиваться.
плюс к первому посту могу посоветовать перекидывать фокус
|
Номер ответа: 3 Автор ответа: ![]() ![]() ![]() ![]() Вопросов: 1 Ответов: 26 |
Профиль | Цитата | #3 | Добавлено: 02.09.10 15:16 |
Алексей,
Спасибо за ответ. К сожалению, Ваш вариант тоже не работает. Focus я уже пробовал раньше - не работает. А вот HideSelection на пару с моим Select даёт интересный результат: видно, что строка подсвечивается (спасибо за перевод), но не обычным синим цветом, а серым. Меня смущают две вещи: 1. В обоих TabPages я использовал одинаковые коды (включая ItemSelectionChanged events), но результат разный 2. У меня есть форма, в которой у меня нет TabControl, и в которой я также использую ListView. Так вот, когда я запускаю debug, в этой форме программа проходит через ItemSelectionChanged только один раз, а в форме с TabControl - трижды (в обеих TabPages). Может быть, это особенности TabControl? |
Номер ответа: 4 Автор ответа: ![]() ![]() ![]() ![]() Вопросов: 26 Ответов: 295 |
Профиль | Цитата | #4 | Добавлено: 02.09.10 16:41 |
На кофейной гуще гадать никто не будет. Телепаты, в лице Eros-а и Artyom-а, похоже в отпуске.
Выложи или проверь сам код который заполняет листВью. Если у листВью есть датасорс, то селекшен будет меняться несколько раз. Возможно ты где-то ещё накосячил. |
Номер ответа: 5 Автор ответа: ![]() ![]() ![]() ![]() Вопросов: 1 Ответов: 26 |
Профиль | Цитата | #5 | Добавлено: 02.09.10 17:12 |
Коды выложить не трудно. Вот они:
Private Sub frmDogsAndCats_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load Enable_Owner(False) ![]() End Sub Sub Enable_Owner(ByVal Switch As Boolean) cmbState.Enabled = Switch cmdDeleteOwner.Enabled = Not Switch .................................... txtZIP.Enabled = Switch End Sub Sub DisplayOwner() SqlStatement = "Select * from " & OwnersTable & " Where clientid = '" & ClientID & "'" connAdapter.SelectCommand.CommandText = SqlStatement If Not dsDCL.Tables("SelectedOwner" ![]() dsDCL.Tables("SelectedOwner" ![]() End If connAdapter.SelectCommand.CommandType = CommandType.Text connAdapter.Fill(dsDCL, "SelectedOwner" ![]() drRow = dsDCL.Tables("SelectedOwner" ![]() txtClientID_pgeOwners.Text = ClientID ...................... cmdPrior.Enabled = True pgfDogsInfo.SelectedIndex = 0 pgeOwners.Select() End Sub Private Sub pgfDogsInfo_Selected(ByVal sender As Object, ByVal e As System.Windows.Forms.TabControlEventArgs) Handles pgfDogsInfo.Selected Select Case e.TabPageIndex Case Is = 1 If AddMode = True Or EditMode = True Then Enable_Dogs(True) Else Enable_Dogs(False) End If ![]() Case Is = 2 If AddMode = True Or EditMode = True Then Enable_Vaccination(True) Else Enable_Vaccination(False) End If ![]() End Select End Sub Sub Enable_Dogs(ByVal Switch As Boolean) chkRemoved.Enabled = Switch ................................. txtWeight.Enabled = Switch lsvDogs.Enabled = Not Switch End Sub Sub DisplayDogs() SqlStatement = "Select * from " & DogsTable & " Where clientid = '" & ClientID & "' Order By Dog_ID" connAdapter.SelectCommand.CommandText = SqlStatement If Not dsDCL.Tables("SelectedDogs" ![]() dsDCL.Tables("SelectedDogs" ![]() End If connAdapter.SelectCommand.CommandType = CommandType.Text connAdapter.Fill(dsDCL, "SelectedDogs" ![]() lsvDogs.Items.Clear() If dsDCL.Tables("SelectedDogs" ![]() litem = lsvDogs.Items.Add(" " ![]() litem.SubItems.Add("No Dogs On File For This Owner" ![]() .................................................... SelDog = 0 Else ![]() ![]() ![]() For Each drRowDogs In dsDCL.Tables("SelectedDogs" ![]() litem = lsvDogs.Items.Add(drRowDogs.Item(" ![]() ![]() litem.SubItems.Add(drRowDogs.Item("FullName" ![]() .............................................. Next If AddMode = True Then SelDog = rowcount - 1 ElseIf EditMode = False Then SelDog = 0 End If End If 'lsvDogs.Items(SelDog).ListView.Select() 'lsvDogs.HideSelection = False lsvDogs.Items(SelDog).Selected = True 'lsvDogs.Focus() End Sub Sub Enable_Vaccination(ByVal Switch As Boolean) chkWalkIn.Enabled = Switch ............................ lsvTags.Enabled = Not Switch End Sub Sub DisplayVaccination(ByVal VacID_Ind As Integer) SqlStatement = "Select * from " & VaccinationTable & " Where clientid = '" & ClientID SqlStatement &= "' AND dog_id = '" & DogID & "' Order By ClientID, Dog_ID, vacdate, expdate, vacid" connAdapter.SelectCommand.CommandText = SqlStatement If Not dsDCL.Tables("VaccinationTable" ![]() dsDCL.Tables("VaccinationTable" ![]() End If connAdapter.SelectCommand.CommandType = CommandType.Text connAdapter.Fill(dsDCL, "VaccinationTable" ![]() lsvTags.Items.Clear() VacInd = 0 If dsDCL.Tables("VaccinationTable" ![]() litem = lsvTags.Items.Add(" " ![]() ............................... litem.SubItems.Add(0) Else ![]() ![]() For Each drRow In dsDCL.Tables("VaccinationTable" ![]() litem = lsvTags.Items.Add(drRow.Item("TagNumber" ![]() litem.SubItems.Add(drRow.Item("ChargeType" ![]() ............................................... litem.SubItems.Add(drRow.Item("VacID" ![]() Next If AddMode = True Then VacInd = rowcount - 1 End If End If 'lsvTags.Items(VacInd).ListView.Select() lsvTags.Items(VacInd).Selected = True End Sub Private Sub lsvDogs_ItemSelectionChanged(ByVal sender As Object, ByVal e As System.Windows.Forms.ListViewItemSelectionChangedEventArgs) Handles lsvDogs.ItemSelectionChanged If e.IsSelected = True Then SelDog = e.ItemIndex If dsDCL.Tables("SelectedDogs" ![]() ![]() txtDogID_pgeDogs.Text = "" .......................... Else ![]() ....................................... End If End If End Sub Private Sub lsvTags_ItemSelectionChanged(ByVal sender As Object, ByVal e As System.Windows.Forms.ListViewItemSelectionChangedEventArgs) Handles lsvTags.ItemSelectionChanged If e.IsSelected = True Then VacInd = e.ItemIndex If dsDCL.Tables("VaccinationTable" ![]() txtTagNumber.Text = "" ....................... VacID = 0 Else txtTagNumber.Text = lsvTags.Items(e.ItemIndex).Text ........................................... VacID = CInt(lsvTags.Items(e.ItemIndex).SubItems(17).Text) End If End If End Sub |
Номер ответа: 6 Автор ответа: ![]() ![]() ![]() ![]() Вопросов: 1 Ответов: 26 |
Профиль | Цитата | #6 | Добавлено: 02.09.10 17:41 |
Здесь - коды из главного модуля
Module modDogLicense Public connString As String = " ![]() ![]() Public connDCL As New SqlConnection(connString) Public connOwner As New SqlConnection(connString) Public connAdapter As New SqlDataAdapter(QueryDCL, connDCL) Public dsDCL As New DataSet Public drRow As DataRow Public drRowDogs As DataRow Public drRowVac As DataRow Public SqlCommand As New SqlCommand Public AddMode As Boolean Public ClientID As String = "" Public DogID As String Public DogsTable As String Public EditMode As Boolean Public OwnersTable As String Public SqlStatement As String Public VaccinationTable As String Public VacID As Integer Sub Main() OwnersTable = " ![]() ![]() ![]() VaccinationTable = " ![]() ' Open connection and Read Users Table to check for authorized user SqlCommand.Connection = connDCL connDCL.Open() End Sub |
Номер ответа: 7 Автор ответа: ![]() ![]() ![]() ![]() ICQ: 192496851 Вопросов: 75 Ответов: 3178 |
Профиль | Цитата | #7 | Добавлено: 02.09.10 19:06 |
о боже. ты слеп? используй тэг source |
Номер ответа: 8 Автор ответа: ![]() ![]() ![]() ![]() ICQ: 192496851 Вопросов: 75 Ответов: 3178 |
Профиль | Цитата | #8 | Добавлено: 02.09.10 19:06 |
Focus работает. используй правильно |
Номер ответа: 9 Автор ответа: ![]() ![]() ![]() ![]() Вопросов: 1 Ответов: 26 |
Профиль | Цитата | #9 | Добавлено: 02.09.10 19:18 |
А можно не так грубо в словах и конкретнее в кодах? Я не знаю, что такое тэг source. Я же сказал, что я - новичок в .NET
Если Вы не желаете помогать, лучше не пишите. И не надо мне "тыкать" Тем более, что я раза в два старше Вас. |
Номер ответа: 10 Автор ответа: ![]() ![]() ![]() ![]() Вопросов: 26 Ответов: 295 |
Профиль | Цитата | #10 | Добавлено: 02.09.10 21:45 |
И не надо мне "тыкать" Тем более, что я раза в два старше Вас. Тебе что, 84?
|
Номер ответа: 11 Автор ответа: ![]() ![]() ![]() ![]() Вопросов: 1 Ответов: 26 |
Профиль | Цитата | #11 | Добавлено: 02.09.10 21:53 |
Значит, в полтора.
И потом... Это был ответ на грубость. Что за вопрос: "Ты что, слепой?" Нет, я не слепой, я просто не знаю .NET так хорошо, как знает кто-то другой. По крайней мере, когда ко мне обращаются с просьбой помочь (а программирую я уже более 30-ти лет), я так не отвечаю. Ну так что, ждать мне помощи от Вас или порыскать по другим форумам? |
Номер ответа: 12 Автор ответа: ![]() ![]() ![]() ![]() ICQ: 192496851 Вопросов: 75 Ответов: 3178 |
Профиль | Цитата | #12 | Добавлено: 02.09.10 23:23 |
причем тут .net, здесь, на сайте, совсем рядом с кнопкой "сохранить" есть кнопка "код", которая заключит всё вышескопипастенное в нормальные рамки, а именно в тэг SOURCE, ибо выведенное там никто не то чтобы читать, даже скопировать к себе не сможет.
если чем то ВАС обидел, сорокалетний мужчина, прошу прощения, но российский интернет мало знает вежливости, так что привыкайте к "тыканью". помощь была дана практически сразу - если нужно передать фокус (подсветкой синим элемента листа) - нужно юзать Focus. Если не работает - это ведь не значит что ребята из MS поленились сделать функцию, а значит, что ВЫ ее некорректно юзаете, о чем, кстати, тоже был упомянуто. также, не имея вменяемого кода на руках (а еще лучше - ссылки на архив с проектом) ничего толкового ВЫ от нас не узнаете, кроме как "юзай Focus" или что-нибудь вроде этого, ибо непонятно, с чем имеем дело. |
Номер ответа: 13 Автор ответа: ![]() ![]() ![]() ![]() Вопросов: 1 Ответов: 26 |
Профиль | Цитата | #13 | Добавлено: 02.09.10 23:40 |
|
Номер ответа: 14 Автор ответа: ![]() ![]() ![]() ![]() Вопросов: 1 Ответов: 26 |
Профиль | Цитата | #14 | Добавлено: 02.09.10 23:47 |
Вот теперь - понятно... мне.
Я нажимал на код, но не увидел никаких изменений. Оказывается, оно переходит в код только после того, как сохраняется... Многоточия я ставил, чтобы показать, что пропускал одинаковые коды (заполнить ListView или Boxes). И мне 62, а не 40 (я же ответил на вопрос о 84 - в полтора раза). Но это - так, безотносительно к программированию и данной проблемы. |
Номер ответа: 15 Автор ответа: ![]() ![]() ![]() ![]() Вопросов: 1 Ответов: 26 |
Профиль | Цитата | #15 | Добавлено: 02.09.10 23:48 |
... проблеме |
|