我是编程领域的新手,我有一些问题。我将不胜感激任何帮助!!
我有一个表格" FW_Details"在选择了来自treeView2(8个节点)的节点后打开,并且用户单击了一个按钮。我希望当表单打开以显示先前插入的数据时,让用户修改它以及何时关闭以保存已修改的数据(对于每个特定节点)。
从主窗体调用FW_Details表单:
foreach (TreeNode node in treeView2.Nodes)
{
if (node.IsSelected)
{
FW_Details fw = new FW_Details(node.Name);
fw.Show();
}
FW_Details包含:
public partial class FW_Details : Form
{
public FW_Details(string name)
{
switch (name)
{
case "x":
FW_Details_Load(null, null, "x");
break;
case "y":
FW_Details_Load(null, null, "y");
break;
事件:FW_Details_Load
private void FW_Details_Load(object sender, EventArgs e, string mycase)
{
switch (mycase)
{
case "x":
Quellpfad.Text = Properties.Settings.Default.Quellpfad;
Zielpfad.Text = Properties.Settings.Default.Zielpfad;
Schlüsselwort.Text = Properties.Settings.Default.Schlüsselwort;
DateiTyp.Text = Properties.Settings.Default.DateiTyp;
Suchzeit.Text = Properties.Settings.Default.Suchzeit.ToString();
break;
case "y":
Quellpfad.Text = Properties.Settings.Default.Quellpfad;
Zielpfad.Text = Properties.Settings.Default.Zielpfad;
Schlüsselwort.Text = Properties.Settings.Default.Schlüsselwort;
DateiTyp.Text = Properties.Settings.Default.DateiTyp;
Suchzeit.Text = Properties.Settings.Default.Suchzeit.ToString();
break;
事件:FW_Details_FormClosed
private void FW_Details_FormClosed(object sender, FormClosedEventArgs e, string mycase)
{
switch (mycase)
{
case "x":
Properties.Settings.Default.Quellpfad = Quellpfad.Text;
Properties.Settings.Default.Zielpfad = Zielpfad.Text;
Properties.Settings.Default.Schlüsselwort = Schlüsselwort.Text;
Properties.Settings.Default.DateiTyp = DateiTyp.Text;
Properties.Settings.Default.Suchzeit = Convert.ToInt32(Suchzeit.Text);
Properties.Settings.Default.Save();
break;
Q1:我收到2条错误消息:
Error 1. No overload for 'FW_Details_FormClosed' matches delegate 'System.Windows.Forms.FormClosedEventHandler'
Error 2 No overload for 'FW_Details_Load' matches delegate 'System.EventHandler'
是不是因为我为活动添加了参赛者" string mycase"?我该如何解决这个问题?
Q2。在FW_Details表单加载数据后出现在屏幕上..我希望用户能够修改参数 表单,然后保存为每个节点指定的参数...我该怎么做?我应该在show ...之后在主窗体中调用事件FW_Details_FormClosed但是它无法识别
答案 0 :(得分:0)
您无法自己向事件处理程序委托添加参数。你必须遵守代表们的意见。由事件定义的签名。
这意味着private void FW_Details_Load(object sender, EventArgs e, string mycase)
应该成为private void FW_Details_Load(object sender, EventArgs e)
等等。
您可能希望mycase
成为类变量,因此您可以在事件处理程序中访问它:
public partial class FW_Details : Form
{
private string mycase;
...
}