C# 如何在c中编写类方法来处理现有表单#
我的项目中有两个表格,表格1和表格2。我已经在我的项目中添加了一个新类。它有一个接受表单对象的方法,应该能够执行以下操作C# 如何在c中编写类方法来处理现有表单#,c#,C#,我的项目中有两个表格,表格1和表格2。我已经在我的项目中添加了一个新类。它有一个接受表单对象的方法,应该能够执行以下操作 显示接受的表单对象(frm.ShowDialog()) 当我在显示的表单(frm)上按ENTER键时,它应该关闭。(不向form2 s按键事件添加代码)。它应该由新添加的类处理 我试图添加新的keyeventhandler,但我不知道如何从这里开始。请帮我解决这个问题。多谢各位 class Class1 { public static void SearchResul
class Class1
{
public static void SearchResultBox(Form2 frm)
{
frm.KeyDown += new KeyEventHandler(frm_KeyDown);
frm.ShowDialog();
}
static void frm_KeyDown(object sender, KeyEventArgs e)
{
if (e.KeyCode==Keys.Enter)
{
}
throw new NotImplementedException();
}
}
frm.close()和frm.dispose()不会执行您要求的任务
static void frm_KeyDown(object sender, KeyEventArgs e)
{
if (e.KeyCode==Keys.Enter)
{
frm.close();
frm.dispose();
}
throw new NotImplementedException();
}
创建自己的
表单
类并使用,如下所示
public class MyOwnForm : Form
{
private override OnLoad(...)
{
base.OnLoad(..);
AcceptButton = yourOkButtonObject;
}
}
其中,
yourOkButtonObject
是“OK”buton的对象,我假设它出现在你的表单上。如果没有确认表单的任何其他按钮。您需要保留对传入表单的引用,然后使用该引用关闭表单
class Class1
{
private static Form2 _frm = null;
public static void SearchResultBox(Form2 frm)
{
_frm = frm;
frm.KeyDown += new KeyEventHandler(frm_KeyDown);
frm.ShowDialog();
}
static void frm_KeyDown(object sender, KeyEventArgs e)
{
if (e.KeyCode==Keys.Enter)
{
if(_frm != null)
{
_frm.Close();
_frm.Dispose();
}
}
}
}
谢谢你,史蒂夫。这给了我一个错误。“警告1”字段“WindowsFormsApplication15.Class1.\u frm”从未分配给,且其默认值始终为null“应答更新”。我假设这将避免错误,但现在无法测试。谢谢你,嗯。frm.close()和frm.dispose()不起作用,因为我在类中使用了不同的方法。@chaarr-这是什么意思?如果您正在向表单发送引用,那么它应该可以工作,当然前提是您正在调用该方法。您可以将表单的AcceptButton设置为在表单类型中按ENTER按钮时“单击”所需的按钮。在程序中使用表单类型之后。因此,应用程序中的所有窗体都将在按下ENTER按钮时关闭