我正在使用我的form1
使用拖放事件的系统,form2
显示form1
中丢弃的字段信息。在form2
中有一个Button
确定并取消。好的,如果显示的信息是正确的,那么它将继续复制信息并将其作为文件夹和取消按钮,如果它不正确。
这是怎么回事:
删除文件--->(Form1)拖放事件---->(Form2)显示信息:(文件名,工单号,带宽等)
public void BagsakanBin_DragDrop(object sender, DragEventArgs e)
{
string[] files = (string[])e.Data.GetData(DataFormats.FileDrop);
foreach (string file in files)
{
WOFilenameERROHANDLER();
Filename = Path.GetFullPath(file);
//function para papuntahin si file kay Patching folder
if(Filename.ToLower().Contains("pat_"))
{
if (!Path.HasExtension(file))
{
MessageBox.Show("Patching Diagram Issued!");
DirectoryInfo dir = new DirectoryInfo(Filename);
FileInfo[] FolderFile = dir.GetFiles(); //Getting Text files
if (!dir.Exists)
{
throw new DirectoryNotFoundException(
"Source directory does not exist or could not be found: "
+ Filename);
}
DirectoryInfo[] dirs = dir.GetDirectories();
// If the destination directory doesn't exist, create it.
if (!Directory.Exists(PATdestFile + "\\" + Path.GetFileName(file)))
{
Directory.CreateDirectory(PATdestFile + "\\" + Path.GetFileName(file));
}
foreach (FileInfo filename in FolderFile)
{
if (filename.Name.Contains(".pdf") || filename.Name.Contains(".xls") || filename.Name.Contains(".vsd") || filename.Name.Contains(".docx") || filename.Name.Contains(".doc") || filename.Name.Contains(".ppt"))
{
filename.CopyTo(PATdestFile + "\\" + Path.GetFileName(file) + "\\" + filename.Name, true);
}
else
{
MessageBox.Show(" Cannot copy file " + filename.Name + "\n Only .pdf,.xls,vsd,.docx,.doc,.ppt\n Are acceptable file extensions", "WARNING!");
}
}
}
else
{
Directory.CreateDirectory(PATdestFile + "\\" + Path.GetFileNameWithoutExtension(file));
if (Path.GetFileName(file).Contains(".pdf") || Path.GetFileName(file).Contains(".xls") || Path.GetFileName(file).Contains(".vsd") || Path.GetFileName(file).Contains(".docx") || Path.GetFileName(file).Contains(".doc") || Path.GetFileName(file).Contains(".ppt"))
{
File.Copy(Path.GetFullPath(file), PATdestFile + "\\" + Path.GetFileNameWithoutExtension(file) +"\\" + Path.GetFileName(file), true);
}
else
{
MessageBox.Show(" Cannot copy file " + Path.GetFileName(file) + "\n Only .pdf,.xls,vsd,.docx,.doc,.ppt\n Are acceptable file extensions", "WARNING!");
}
}
PATFileNameSeparator();
PATupdate();
}
}
}
您可以看到复制和制作文件夹位于draganddrop
事件中
如何调用form2
来显示信息,当我点击确定按钮时,它将继续复制文件。
public void DisplayInfo(string WOfilename)
{
WOdisp.Text = WOfilename;
}
这是我调用信息的地方
public void WOFilenameERROHANDLER()
{
IssuedDisp.DisplayInfo(Path.GetFileName(WOfilename.ToString()));
}
问题是如何在draganddrop
功能
答案 0 :(得分:0)
在Form1中为Form2的按钮单击事件添加处理程序。
Form2 form2 = new Form2();
(form2.Controls.Find("btnOK", true)[0] as Button).Click += btnOK_Click;
form2.Show();
private void btnOK_Click(object sender, EventArgs e)
{
CopyTheFiles();
}
答案 1 :(得分:0)
一种可能性
您可以在form2
中添加一个标记,如:
public partial class Form2 : Form
{
public bool OK { get; set; }
如果单击确定,则将其设置为true。在Form1
订阅[{1}}
FormClosing
事件
Form2
然后在Form2 form2 = new Form2();
form2.FormClosing += Form2_FormClosing;
关闭且事件被触发时检查标志。
Form2
这里详细说明一下:
编辑
这是第二种可能性:
您可以直接在按钮中设置private void Form2_FormClosing(object sender, FormClosingEventArgs e)
{
Form2 f2 = sender as Form2;
if (f2 != null)
{
if (f2.OK)
{
// proceed
}
else
{
// don't proceed
}
}
}
的{{1}}:
DialogResult
现在,当您将其称为消息框时,您可以查看Form2
中的private void OK_Button_Click(object sender, EventArgs e)
{
this.DialogResult = DialogResult.OK;
}
private void Cancel_Button_Click(object sender, EventArgs e)
{
this.DialogResult = DialogResult.Cancel;
}
:
DialogResult