台灣最大程式設計社群網站
線上人數
1322
 
會員總數:242761
討論主題:187725
歡迎您免費加入會員
討論區列表 >> VB.NET >> Listview 預設選取某行
[]  
[我要回覆]
1
回應主題 加入我的關注話題 檢舉此篇討論 將提問者加入個人黑名單
Listview 預設選取某行
價值 : 50 QP  點閱數:422 回應數:13

樓主

黑熊
初學者
20 8
296 27
發送站內信

Listview要怎麼用程式碼反白其中的某行資料呢?

我試過下面兩個都沒辦法
ListView1.Items(x).Checked = True
ListView1.Items(x).Selected = True

下面的程式是用來測試我想要的功能
Form1預設Listview參數
Button1加入資料
Button2顯示目前選取的Index



搜尋相關Tags的文章: [ Listview ] , [ 選取 ] ,
本篇文章發表於2018-04-04 18:20
別忘捐VP感謝幫助你的人 新手會員瞧一瞧
1樓
回應

P陳
檢舉此回應
如果我沒有猜錯,改成這樣就可以了

Private Sub Button2_Click(sender As Object, e As EventArgs) Handles Button2.Click
Dim x As Integer = ListView1.FocusedItem.Index

Button2.Text = x
ListView1.Focus()
' ListView1.Items(x).Checked = True
' ListView1.Items(x).Selected = True
End Sub
本篇文章回覆於2018-04-04 23:06
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔--
2樓
回應

Ader Chen
檢舉此回應

標題 [Listview 預設選取某行] 和內文 [Listview要怎麼用程式碼反白其中的某行資料呢] 並不同?
若從程式碼猜測, 似乎是因為焦點移到 Button2, 所以 ListView1 就沒有顯示反白選取,
而目的是希望 [按下 Button2 後仍要能看到 ListView1 反白選取項目]?
若是的話, 將焦點再移回 ListView1 就可以了, 例如:

以上猜測...
本篇文章回覆於2018-04-04 23:11
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔--
3樓
回應

Ader Chen
檢舉此回應
2樓同1樓的意思. 打字慢了幾分鐘...
本篇文章回覆於2018-04-04 23:15
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔--
4樓
作者回應

黑熊
檢舉此回應
抱歉,我敘述問題的邏輯不太精準....

依照兩位的說法把焦點移回Listview後再加上 ListView1.Items(x).Selected = True 後可以完成我想達成的目標,感謝你們的解答

但因為先點了Button後才將焦點移回Liwtview所以點選的會先暫時回到原本的狀態,待程式碼執行之後才會繼續反白
我想達成的目標是在使用者點選LIstview的某行後,可以點選Button進行某行資料的上移、下移或刪除
但在執行這些動作時希望反白區域可以持續留在Listview上,不要讓使用者每做一次動作都要再重點一次

我用ListBox的時候不用特別取回焦點"Listbox.focus()"也可以有同樣的效果,而且也不會閃一下
為什麼用Listview就會這樣呢,是我忽略了什麼地方嗎?
本篇文章回覆於2018-04-05 00:01
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔--
5樓
回應

P陳
檢舉此回應
屬性表的 Hideselection 設為 False 就可以顯示了

只是顯示的顏色是灰色的,您要再試一下
本篇文章回覆於2018-04-05 07:44
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔--
6樓
作者回應

黑熊
檢舉此回應
依照 P陳 大大說的測試了一下,是可以讓顯示使用焦點留在Listview上,不過變沒辦法維持藍色有點可惜

我原本是用Lisrbox顯示資料,但我的資料是用好幾個陣列的字串兜起來的,每個字串長度不一致,所以在顯示時沒辦法對其,看起來有點礙眼
後來看到Listview可以做欄位分隔,而且功能和Listbox相似,所以想說用這個試試看,不過可惜的雖然資料排序比較整齊了,但如果點選其他物件沒辦法像Listbox那樣保留焦點

現在變成一個二選一的情境了
Listbox:
優勢->可以再點選其他物件時保留焦點(反白區域)
劣勢->多組字串放入同一行時如果有很多行的資料會看起來不太整齊
Listview:
優勢->可以依照使用情境設定Columns數量和寬度,保證每行的多筆資料的可以整齊排序
劣勢->點選其他物件會遺失焦點
1.先用Focus()再用ListView1.Items(x).Selected = True可繼續反白,但是會閃一下
2.Hideselection設定為False可以持續顯示,但會變成灰色,不是非常醒目
本篇文章回覆於2018-04-05 11:45
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔--
7樓
回應

P陳
檢舉此回應
其實您還可以有一個選擇
datagridview

本篇文章回覆於2018-04-05 12:28
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔--
8樓
最有價值解答

P陳
檢舉此回應
搞定了
與是否設定 Hideselection 無關

Private Sub ListView1_Leave(sender As Object, e As EventArgs) Handles ListView1.Leave
ListView1.Focus()
End Sub

參考網站
https://stackoverflow.com/questions/5179664/how-to-change-listview-selected-row-backcolor-even-when-focus-on-another-control
本篇文章回覆於2018-04-05 12:39
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔--
9樓
作者回應

黑熊
檢舉此回應
又學到一招了,感謝 P陳 大大!!!
本篇文章回覆於2018-04-05 15:45
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔--
10樓
回應

P陳
檢舉此回應
下載的 24節氣的黑熊是您這位黑熊嗎?

與香港氣像局的資料2分以內的誤差。

之前要學八字時,一直在找這個計算公式,後來八字沒學了,這個也沒找了

本篇文章回覆於2018-04-05 21:26
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔--
11樓
回應

P陳
檢舉此回應
HP 都是47 就是您沒錯了
本篇文章回覆於2018-04-05 21:27
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔--
12樓
作者回應

黑熊
檢舉此回應
對啊 是那我寫的

之前想寫工資計算的程式,但是一直卡在清明節日期飄忽不定寫不出來
找了很多資料才偶然間發現這個計算公式,話說這公式還真是稀有啊
網路上一堆似是而非的算法,真的讓人有看沒有懂,花了好多時間才找出一個看得懂的
天文與曆法
本篇文章回覆於2018-04-05 21:54
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔--
13樓
作者回應

黑熊
檢舉此回應
程式在追加功能的時候遇到問題,如果寫成ListView焦點遺失時繼續鎖定焦點"ListView1.Focus()"
其他按鈕雖然可以按,但是像TextBox這種要寫入資料的物件就無法使用了
所以還是只能用Hideselection屬性..........
本篇文章回覆於2018-04-10 11:20
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔--
   
1

回覆
如要回應,請先登入.