[ad_1]
Salut,
Besoin d’aide, d’abord pas bon en anglais,
J’ai une vue de liste affichant les éléments du fichier texte du répertoire désigné (dossier), je veux que le champ de recherche et (TextBox1) et cmdButton (Button1) recherchent et affichent tous les éléments que je recherche dans la troisième colonne ou le numéro d’identification.
EX:
Colonne 1 : Date et heure :
Colonne 2 : Nom :
Colonne 3 : Numéro d’identification :
08-08-2017 06:06:00, John Lucas, 1010000
08-08-2017 07:00:00, avril Dun, 1010023
08-08-2017 08:45:00, Kevin Elmo, 1010014
08-08-2017 09:06:00, John Lucas, 1010000
08-08-2017 10:24:00, Ed Olivia, 1010012
08-08-2017 11:47:00, John Lucas, 1010000
08-08-2017 12:56:00, Liza Ben, 1010001
Je souhaite afficher les données (éléments) de John Lucas en recherchant le numéro d’identification et en les affichant dans une liste (une autre liste)
Ce que j’ai essayé :
“C’est le code pour afficher mes éléments à partir d’un fichier texte uniquement, je n’en ai aucune idée et je vous demande de l’aide, TIA.”
Private Sub Form1_Load(sender As Object, e As EventArgs) Handles MyBase.Load, MyBase.DockChanged lvDETAILS.View = View.Details lvDETAILS.Columns.Add("Date/Time:", 220, HorizontalAlignment.Left) lvDETAILS.Columns.Add("Employee Name:", 280, HorizontalAlignment.Left) lvDETAILS.Columns.Add("ID Number:", 120, HorizontalAlignment.Left) lvDETAILS.Columns.Add("Department:", 250, HorizontalAlignment.Left) lvDETAILS.Columns.Add("User Type:", 200, HorizontalAlignment.Left) lvDETAILS.Columns.Add("ESD Check Result:", 200, HorizontalAlignment.Left) Dim File_Name As String = "D:\esdcheck\DET.dll" Dim objReader As New IO.StreamReader(File_Name) Dim newarray(6) As String Dim DateTime As String Dim Name As String Dim IDNum As String Dim Department As String Dim UserType As String Dim ESDResult As String Do While objReader.Peek <> -1 newarray = objReader.ReadLine().Split(",") DateTime = newarray(0) Name = newarray(1) IDNum = newarray(2) Department = newarray(3) UserType = newarray(4) ESDResult = newarray(5) Dim x As Integer = lvDETAILS.Items.Add(New ListViewItem(New String() {DateTime})).Index 'Para sa Listview unang Column depende sa base sa index lvDETAILS.Items.Item(x).SubItems.Add(Name) 'yung 'x' po na yun ay number of index na nakaset per column., ilalagay sa second column depende sa index lvDETAILS.Items.Item(x).SubItems.Add(IDNum) 'sunod sunod lang po ang pag lagay depende sa dami ng column lvDETAILS.Items.Item(x).SubItems.Add(Department) 'yeah lvDETAILS.Items.Item(x).SubItems.Add(UserType) 'yeah lvDETAILS.Items.Item(x).SubItems.Add(ESDResult) 'yeah !!! eto na yung last! End Sub
Solution 1
Votre meilleure solution consiste à utiliser un contrôle qui prend en charge la liaison et le filtrage des données. Bien que cela soit possible et trop complexe, ListView n’est pas vraiment adapté à cet effet.
Cependant, DataGridView est conçu pour la tâche que vous souhaitez accomplir. Cet article de CodeProject vous montre exactement comment réaliser ce que vous voulez : Un didacticiel détaillé sur la liaison de données[^]
Solution 2
J’utilise Visual Studio 2017 VB.net – c’est C#
Solution 3
Imports System.Collections.Generic Public Class Form1 ' Dictionary to store unique items Dim itemsDictionary As New Dictionary(Of String, ListViewItem) Private Sub Form1_Load(sender As Object, e As EventArgs) Handles MyBase.Load ' Initialize ListView columns ListView1.View = View.Details ListView1.Columns.Add("Date and Time", 200) ListView1.Columns.Add("Name", 150) ListView1.Columns.Add("ID Number", 100) ' Add sample data AddItem("08-08-2017 06:06:00", "John Lucas", "1010000") AddItem("08-08-2017 07:00:00", "April Dun", "1010023") AddItem("08-08-2017 08:45:00", "Kevin Elmo", "1010014") AddItem("08-08-2017 09:06:00", "John Lucas", "1010000") AddItem("08-08-2017 10:24:00", "Ed Olivia", "1010012") AddItem("08-08-2017 11:47:00", "John Lucas", "1010000") AddItem("08-08-2017 12:56:00", "Liza Ben", "1010001") End Sub Private Sub AddItem(dateTime As String, name As String, idNumber As String) ' Create ListViewItem Dim item As New ListViewItem({dateTime, name, idNumber}) ' Check for duplicates Dim key As String = $"{dateTime}-{name}-{idNumber}" If Not itemsDictionary.ContainsKey(key) Then ' Add item to ListView and dictionary ListView1.Items.Add(item) itemsDictionary.Add(key, item) Else ' Handle duplicate (e.g., change color or other action) item.BackColor = Color.LightPink End If End Sub End Class
[ad_2]
コメント