내 양식에 2 개의 목록 상자가 있습니다. 첫 번째는 배열에서 채우고 Date Time picker의 값과 관련된 파일 이름을 표시합니다. 해당 항목을 두 번 클릭하면 두 번째 목록 상자로 이동하고 첫 번째 목록에서 지우고 관련 파일이 한 디렉터리에서 다른 디렉터리로 전송됩니다. 내가 가진 문제는 응용 프로그램이 닫히고 파일 이름이 두 목록 상자에 모두 나타나면 채우기가로드 이벤트의 일부이기 때문입니다.목록 상자에서 다른 항목이 나타나면 항목을 제거하십시오.
개체가 1 텍스트 상자에 나타나면 다른 개체에 나타나지 않아야한다고 말하는 방법이 있습니까?
나는 해봤 다음하지만 다시 개방 아직도 내가 그것을
For Each Dir As String In System.IO.Directory.GetDirectories(aMailbox)
Dim dirInfo As New System.IO.DirectoryInfo(Dir)
lstProgress.Items.Add(dirInfo.Name)
최대 부하 코드를 채우려면 다음을 사용하고 두 번째 목록 상자를 들어 두
Dim item As Object
For Each item In lstPlanned.Items
If lstProgress.Contains(item) Then
lstPlanned.Items.Remove(item)
End If
Next
에서 개체를 표시
Private Sub Main_Load(sender As Object, e As EventArgs) Handles MyBase.Load
Dim loaddate As String = Calendar.Value.ToString("dd/MM/yy")
ReDim AllDetail(0 To 0)
numfiles = 0
lstPlanned.Items.Clear()
Dim allfiles = lynxin.GetFiles("*.txt")
ReDim AllDetails(allfiles.Count)
lstProgress.Items.Clear()
lstPlanned.Items.Add("No Jobs Planned Today!")
lstPlanned.Enabled = False
For Each txtfi In (allfiles)
Dim allLines() As String = File.ReadAllLines(txtfi.FullName)
AllDetails(numfiles) = New FileDetail()
AllDetails(numfiles).uPath = Microsoft.VisualBasic.Left((txtfi.FullName), Len(txtfi.FullName) - 4)
AllDetails(numfiles).uFile = Path.GetFileNameWithoutExtension(txtfi.Name)
Dim line = allLines.Where(Function(x) (x.StartsWith("unitname="))).SingleOrDefault()
If line IsNot Nothing Then
AllDetails(numfiles).uName = line.Split("="c)(1)
End If
line = allLines.Where(Function(x) (x.StartsWith("unitcode="))).SingleOrDefault()
If line IsNot Nothing Then
AllDetails(numfiles).uCode = line.Split("="c)(1)
End If
line = allLines.Where(Function(x) (x.StartsWith("opername="))).SingleOrDefault()
If line IsNot Nothing Then
AllDetails(numfiles).uOps = line.Split("="c)(1)
End If
line = allLines.Where(Function(x) (x.StartsWith("plandate="))).SingleOrDefault()
If line IsNot Nothing Then
AllDetails(numfiles).uPlan = line.Split("="c)(1)
End If
line = allLines.Where(Function(x) (x.StartsWith("cliecode="))).SingleOrDefault()
If line IsNot Nothing Then
AllDetails(numfiles).uClient = line.Split("="c)(1)
End If
If AllDetails(numfiles).uPlan = loaddate Then
lstPlanned.Items.Remove("No Jobs Planned Today!")
lstPlanned.Enabled = True
lstPlanned.Items.Insert(0, AllDetails(numfiles).uName & " - " & AllDetails(numfiles).uCode & " - " & AllDetails(numfiles).uOps)
numfiles = numfiles + 1
End If
Next
For Each Dir As String In System.IO.Directory.GetDirectories(aMailbox)
Dim dirInfo As New System.IO.DirectoryInfo(Dir)
lstProgress.Items.Add(dirInfo.Name)
Dim item As Object
For Each item In lstPlanned.Items
If lstProgress.Contains(item) Then
lstPlanned.Items.Remove(item)
End If
Next
Next
End Sub
천만에요 개정
에 첫 번째 편집 적응. 내 마지막 편집을 참조하십시오. For Each 루프를 제외했습니다. – tinstaafl
@tinstaafl 약간의 문제가 있습니다. 목록 상자에 두 개의 항목이있는 경우 두 번 클릭하면 선택 항목뿐만 아니라 둘 모두가 제거됩니다. – elmonko
RemoveAt (selectedindex) 또는 이와 유사한 항목을 사용해보십시오. 항목 자체가 아닌 특정 색인 만 찾습니다. – tinstaafl