在Windows窗体项目中,我创建了一个新类:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace FTP_ProgressBar
{
class FtpConfig
{
public static string txtHost;
public static string txtUsername;
public static string txtPassword;
public static string txtDir;
public static string txtUploadFile;
public static string txtPort;
public static System.Windows.Forms.CheckBox chkPassive;
public static FtpSettings f;
}
}
在form1中,我有一个点击按钮,我正在调用一个带有设置的方法:
private void btnUpload_Click(object sender, EventArgs e)
{
FtpSettings();
}
然后:
private void FtpSettings()
{
if (this.ftpProgress1.IsBusy)
{
this.ftpProgress1.CancelAsync();
this.btnUpload.Text = "Upload";
}
else
{
FtpConfig.txtHost = this.txtHost.Text;
FtpConfig.txtUsername = this.txtUsername.Text;
FtpConfig.txtPassword = this.txtPassword.Text;
FtpConfig.txtDir = this.txtDir.Text;
FtpConfig.txtUploadFile = this.txtUploadFile.Text;
FtpConfig.txtPort = this.txtPort.Text;
FtpConfig.chkPassive = this.chkPassive;
this.toolStripProgressBar1.Visible = true;
this.ftpProgress1.RunWorkerAsync(FtpConfig.f);
this.btnUpload.Text = "Cancel";
}
}
问题是我在我的form1设计器中有一个控件,我将dll文件添加到工具箱后拖动控件就像带有treeView1和listView1的Windows资源管理器:
资源管理器窗口是左侧的,扩展了C节点树。
问题是我需要以某种方式在此事件中使用dll库类调用/使用form1中的FtpSettings()方法:
void menuStrip1_ItemClicked(object sender, ToolStripItemClickedEventArgs e)
{
if (e.ClickedItem.Text == "Upload")
{
List<String> selected = new List<String>();
string dir = treeView1.SelectedNode.FullPath;
dir = dir + "\\";
foreach (ListViewItem lvi in listView1.SelectedItems)
{
string g = Path.Combine(dir, lvi.Text);
selected.Add(g);
}
AllFiles = selected.ToArray();
FilesFromExplorerOrManual = false;
Bgw.RunWorkerAsync();
}
}
所以在将控件dll文件添加到我的form1工具箱之后将其拖到form1设计器我每次点击上传时都需要调用FtpSettings方法:
if (e.ClickedItem.Text == "Upload")
在这一行之后:FtpSettings();
但首先我将它拖到form1设计器后无法访问该事件。 第二个也许我需要在这个dll的其他事件中调用FtpSettings()。
我尝试在form1设计器中拖动它然后我有一个变量:explorerTree1所以我试着在form1构造函数中执行:
explorerTree1.MouseUp += explorerTree1_MouseUp;
然后:
void explorerTree1_MouseUp(object sender, MouseEventArgs e)
{
if (e.Button == MouseButtons.Right)
{
FtpSettings();
}
}
我使用了一个断点,但它永远不会停止/进入此事件。它也不是我需要访问的dll文件中的相同事件。