문제

지정된 폴더에 모든 파일을 나열하는 Winform 프로젝트가 있습니다. 사용자는 각 파일에 대한 새 대상을 선택할 수 있으며 사용자가 이동하려는 모든 파일에 대한 대상을 선택하면 파일을 하나씩 이동합니다.

다음 단계는 파일이 이동할 때 확인 양식을 표시하고 이동 중에 각 파일의 이름과 대상을 확인 양식에 추가해야한다는 것입니다.

내 질문은 : 이미로드 한 후 양식의 컨트롤에 텍스트를 더 추가 할 수있는 방법입니다 (사용 confirm.showdialog() 다른 형태에서 사용자 상호 작용없이? 나는 원래 형식에서 그것을해야한다고 생각합니다. 왜냐하면 그것은 해당 파일을 이동하기 시작할 때 각각을 표시해야하기 때문에 원래 형식에서해야한다고 생각하지만 모든 제안에 열려 있습니다 :)

티아

도움이 되었습니까?

해결책

위의 답변은 모두 좋습니다.

올바르게 이해하면 기본 양식을 사용하면 여러 파일을 선택한 다음 대상을 선택하고 이동 프로세스를 시작할 수 있습니다. 그것이 당신이 필요로하는 것이라면, 나는 단순히 다음을 수행 할 것입니다.

  1. 상호 작용이 필요하지 않고 프로세스를 사용자에게보고하는 새 양식을 작성하지만 사용자에게 이동중인 파일을 알려주십시오.
  2. BackgroundWorker 객체의 인스턴스를 작성하고 BackgroundWorker.dowork () 메소드 (기본 형식 내)에서 파일 이동 메소드를 호출하십시오.
  3. 배경 작업자를 표시하여 진행 상황을보고 한 다음 Move-File 메소드 내에서 BackgroundWorker.ReportProgress () 이벤트 핸들러에게 전화하십시오.
  4. 이전에 만든 파일 이름 목록을 사용하여 이름을 가져 와서 파일이 변경되는 동안 파일 이동 대화 상자에보고하십시오. 라벨을 통한 간단한 데이터 바인딩은 CurrencyManager를 목록 내의 다음 항목으로 옮기는 동안 트릭을 수행하거나 목록 인덱서를 사용하여 특정 인덱스에서 파일 이름을 가져올 수 있습니다.
  5. 사용자가 이동 프로세스를 시작하면 파일 이름을 가져 와서 계산 한 다음 ProgressBar 최대 값을 보유한 파일 수로 설정하십시오.
  6. BackgroundWorker.ReportProgress () 메소드는 인수 값을 인수로 취한 다음 ProgressChanged () 이벤트 핸들러를 사용하면 인덱스 위치에서 파일 이름을 가져 와서 창에 복사되는 파일의 이름을 표시 할 수 있습니다. reportProgress () 메소드에 의해 주어진 색인.

이렇게하면 양식이 작성된 기본 스레드를 "동결"하지 않고 보충 스레드의 성능을 사용할 수 있습니다. 그러면 파일 이동을 동시에 수행하고 Filename을 진행 -Form에 표시 할 수 있습니다. ProgressBar 컨트롤을 통해 진행 상황이 무엇인지 시각적으로 설명하고 필요에 따라 파일 이름을 표시하는 동안.

이것이 도움이됩니까?

다른 팁

사전 설정 대화 상자를 사용하는 대신 다른 양식을 만드는 것이 더 간단하지 않습니까?

그렇게하면 채우고 새로 고침하는 텍스트 상자를 가질 수 있습니다.

확인 대화 창 내부에 파일의 이동을 표시하기 위해 모든 코드를 넣을 수 있습니다.

그러나보다 완전한 솔루션을 제공하기 위해 파일 이동 정보를 어떻게 수집하는지 알려주십시오.

좋은 해결책은 이동할 파일 목록을 전달한 다음 대화 상자에서 이동 함수를 수행하는 것입니다.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top