首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >调用对话框方法在C#中形成静态类

调用对话框方法在C#中形成静态类
EN

Stack Overflow用户
提问于 2010-09-17 20:54:40
回答 3查看 782关注 0票数 0

我必须捕获来自父对话框的事件,该对话框使用来自静态类的方法来更新数组。

在此对话框中,我调用子对话框,该对话框在列表中显示数组。

使用变量我知道当前对话框是子对话框还是父对话框,但是从静态类中的方法,当我捕获事件时,如何调用子对话框内的方法来更新列表?

EN

回答 3

Stack Overflow用户

发布于 2010-09-17 21:01:53

您可以将对话框的实例传递到静态方法中,如下所示。但是,如果您在对话框的方法中使用静态方法调用,我肯定会重新访问您的体系结构。

代码语言:javascript
运行
复制
public static class MyStaticClass
{
   public static void SomeMethod(Form myDialog)
   {
      myDialog.SomeMethodOnTheDialog();
   }
}
票数 1
EN

Stack Overflow用户

发布于 2010-09-17 21:02:28

您必须修改您的静态方法以接受Dialog的一个实例作为参数:

代码语言:javascript
运行
复制
public static void UpdateArray(Dialog instance)
{
     // Initialize what you need

     instance.DoSomething();
}

然后你就可以在你的事件处理程序中实现所有的功能,比如:

代码语言:javascript
运行
复制
public void Dialog_EventHandler(object sender, EventArgs e)
{
    Dialog dialog = (Dialog) sender;
    UpdateArray(dialog);
}
票数 0
EN

Stack Overflow用户

发布于 2013-08-01 01:13:37

在子对话框的类中,您必须创建执行所需操作的公共方法。

然后,您只需从静态类调用这些公共方法。

这是一个小型示例,其中我从一个静态类调用了一个公共方法(在我的主窗体中)。我认为这与您正在做的事情很相似。

主窗体代码段

代码语言:javascript
运行
复制
public static void WriteToTextBox(string message)
{
    TextBox myLog = (TextBox)CITX12Parser.Main.ActiveForm.Controls.Find("txtLog", true).First();
    myLog.Text = message;
}

静态类片段

代码语言:javascript
运行
复制
public class LoggingUtils
{
    public static void TestLog(string msg)
    {
        Main.WriteToTextBox(msg + Environment.NewLine);
    }
}
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/3735455

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档