vb.net在没有交互的情况下添加文本

时间:2010-03-14 03:35:31

标签: vb.net winforms dynamic-text

我有一个winform项目,它列出了指定文件夹中的所有文件。它允许用户为每个文件选择一个新目的地,当用户选择了他想要移动的所有文件的目的地时,它会逐个移动文件。

我的下一步是,我需要在移动文件时显示确认表单,并在移动时将每个文件的名称和目的地添加到确认表单。

我的问题是: 在我已经加载后,如何在确认表单的控件中添加更多文本(使用confirm.showdialog(),而不需要任何用户交互?我想我需要从原始表单中执行此操作,因为它需要当它开始移动该文件时显示每一个,但我愿意接受任何建议:)

TIA

3 个答案:

答案 0 :(得分:1)

以上两个答案都很好。

如果我理解正确,您的主表单将允许选择多个文件,然后选择目的地并启动移动过程。如果这就是您所需要的,我只需执行以下操作:

  1. 创建一个新表单,向用户报告流程,无需任何交互,只是告知用户正在移动的文件;
  2. 创建BackgroundWorker对象的实例,并从BackgroundWorker.DoWork()方法(在主窗体中)调用file-move方法;
  3. 将BackgroundWorker标记为报告进度,然后从move-file方法中调用BackgroundWorker.ReportProgress()事件处理程序;
  4. 使用以前创建的文件名列表获取其名称,并在更改文件时将其报告给文件移动对话框窗体。当您将CurrencyManager移动到列表中的下一个项目时,标签上的简单DataBinding应该可以解决问题,或者您可以更简单地使用列表索引器来获取特定索引处的文件名;
  5. 当用户启动移动过程时,获取文件名并对其进行计数,然后将ProgressBar Maximum值设置为您拥有的文件数。
  6. BackgroundWorker.ReportProgress()方法接受一个整数值作为参数,然后,使用ProgressChanged()事件处理程序,您将能够通过获取文件名来显示要复制到窗口的文件的名称。索引位置,ReportProgress()方法给出的索引。
  7. 这将允许您使用补充线程的性能,而不会“冻结”创建表单的主线程,然后您将能够同时执行文件移动,并显示文件名到进度-form,同时向用户直观地说明ProgressBar控件的进度,并根据需要显示文件名。

    这有帮助吗?

答案 1 :(得分:0)

制作另一个表单而不是使用预设对话框会不会更简单?

这样你就可以拥有一个填充和刷新的文本框

答案 2 :(得分:0)

您可以放置​​所有代码以显示在确认对话框窗口中移动文件。

但是为了提供更完整的解决方案,您能告诉我您是如何收集文件移动信息的。

一个好的解决方案是只传入要移动的文件列表,然后在对话框中执行移动功能。