Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/312.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# Form1_Move()将永远不会触发_C# - Fatal编程技术网

C# Form1_Move()将永远不会触发

C# Form1_Move()将永远不会触发,c#,C#,我似乎运气不好,无法运行formX_load(..)之外的任何事件。这就是我希望这里有人能帮我的 我启动了一个空项目,在其上添加了一个标签(label1),并从MSDN的示例中复制了代码。(我在自己的标签文本中添加) 一切都会编译和运行,但无论我移动或重新调整表单大小多少,它都不会更改标签文本或表单文本 我也尝试过OnMove、OnMouseMove和LocationChanged的例子,它们都有相同的问题……它们似乎从未被触发过 我错过了什么?这似乎太容易搞砸了,但唉 谢谢您的时间。这项功能

我似乎运气不好,无法运行formX_load(..)之外的任何事件。这就是我希望这里有人能帮我的

我启动了一个空项目,在其上添加了一个标签(label1),并从MSDN的示例中复制了代码。(我在自己的标签文本中添加)

一切都会编译和运行,但无论我移动或重新调整表单大小多少,它都不会更改标签文本或表单文本

我也尝试过OnMove、OnMouseMove和LocationChanged的例子,它们都有相同的问题……它们似乎从未被触发过

我错过了什么?这似乎太容易搞砸了,但唉

谢谢您的时间。

这项功能:

public partial class Form1 : Form
{
    public Form1()
    {
        InitializeComponent();

        this.Move +=new EventHandler(Form1_Move);
    }

    private void Form1_Move(object sender, System.EventArgs e)
    {
        this.Text = "Form screen position = " + this.Location.ToString();
    }

}
这项工作:

public partial class Form1 : Form
{
    public Form1()
    {
        InitializeComponent();

        this.Move +=new EventHandler(Form1_Move);
    }

    private void Form1_Move(object sender, System.EventArgs e)
    {
        this.Text = "Form screen position = " + this.Location.ToString();
    }

}

重写OnMove应该是有效的,并且是首选方法。您是否在重写的方法中调用了基类OnMove方法

对于_Move事件,您是否在创建表单实例时连接了事件处理程序

比如:

this.Move += this.Form1_Move;

重写OnMove应该是有效的,并且是首选方法。您是否在重写的方法中调用了基类OnMove方法

对于_Move事件,您是否在创建表单实例时连接了事件处理程序

比如:

this.Move += this.Form1_Move;

正如我在评论中提到的,已经有两个答案解释了如何以编程方式添加处理程序。如果希望从VisualStudio中执行此操作,只需加载表单设计器,查看属性(通常位于右下角),单击事件选项卡,然后双击OnMove的事件。双击它之后,VS将自动为您添加处理程序,并将您带到方法体,以便您可以将代码放入其中


正如我在评论中提到的,已经有两个答案解释了如何以编程方式添加处理程序。如果希望从VisualStudio中执行此操作,只需加载表单设计器,查看属性(通常位于右下角),单击事件选项卡,然后双击OnMove的事件。双击它之后,VS将自动为您添加处理程序,并将您带到方法体,以便您可以将代码放入其中


你真的为OnMove事件添加了处理程序吗?我在这里冒险说不。我至少5年没有碰过C,而且粗糙度正在显现……你真的为OnMove事件添加了处理程序吗?我在这里冒险说不。我至少5年没有碰过C,粗糙度正在显现……嗯效果很好!我想一条经验法则是,对于任何您想要创建的事件,您必须在开始时创建这样的事件处理程序?我已经很多年没有使用C了,所以我必须重新学习所有东西。非常感谢你!好吧,这很有效!我想一条经验法则是,对于任何您想要创建的事件,您必须在开始时创建这样的事件处理程序?我已经很多年没有使用C了,所以我必须重新学习所有东西。非常感谢你!我没想到会这样做。我是在错误的假设下运行的,即MSDN“示例”是工作示例,我不需要做任何其他事情来让它们工作。显然是个致命的错误。您所拥有的是加入事件和处理程序的首选方式吗?还是萨米奇的方法更合适?这两种方法都很有效,我真的很感谢你的帮助。是覆盖OnMove还是处理事件是个人的选择。我一直认为最好在自己的类中重写On*方法。显然,如果您使用的是其他人的类,那么您必须处理该事件。这里有一个链接可能会有所帮助:我不认为要这样做。我是在错误的假设下运行的,即MSDN“示例”是工作示例,我不需要做任何其他事情来让它们工作。显然是个致命的错误。您所拥有的是加入事件和处理程序的首选方式吗?还是萨米奇的方法更合适?这两种方法都很有效,我真的很感谢你的帮助。是覆盖OnMove还是处理事件是个人的选择。我一直认为最好在自己的类中重写On*方法。显然,如果你在使用其他人的类,你必须处理这个事件。这里有一个链接可能会有所帮助:你也给我拍了一张截图?这对未来非常有帮助。我记得我在做VB6的时候做过类似的事情。再次感谢你的帮助。我希望我有不止一个向上箭头。你也给我截图了吗?这对未来非常有帮助。我记得我在做VB6的时候做过类似的事情。再次感谢你的帮助。我希望我能有不止一支向上的箭。