为什么在运行时不向控件的位置属性分配新值会更改其位置?

里卡

每当我需要在运行时在窗体上移动控件的位置时,都必须为其顶部和左侧属性分配新值。为什么Location属性不起作用?

例如,我应该能够:

private void btn_MouseMove(object sender, MouseEventArgs e)
        {
            if (e.Button == MouseButtons.Left)
            {
                ((Button)sender).Location = e.Location;
            }
          
        }

但这是行不通的,相反,我必须这样做:

private void btn_MouseMove(object sender, MouseEventArgs e)
        {
            if (e.Button == MouseButtons.Left)
            {
                ((Button)sender).Left = e.X + ((Button)sender).Left;
                ((Button)sender).Top = e.Y + ((Button)sender).Top;
            }

        }
格兰特·温尼

这两个代码段不相同。

MouseEventArgs报告坐标相对于控制你附MouseMove事件,在这种情况下按钮。

在第一个示例中,e.Location0,0当鼠标位于Button的左上角时。然后将Button的位置设置为0,0,但是由于位置是相对于其所在的Form的,所以您的按钮将跳转到Form的左上角。

在第二个示例中,您分别通过添加e.X添加e.YButton的现有属性LeftTop属性正确设置位置


要“修复”第一个示例,您必须对其进行修改以考虑到Button的当前位置:

if (e.Button == MouseButtons.Left)
{
    var b = ((Button) sender);
    b.Location = new Point(b.Left + e.X, b.Top + e.Y);
}

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

c#在运行时更改标签(控件)的位置

来自分类Dev

如何在vb.net Windows窗体中在运行时更改TableLayoutPanel控件中控件的位置

来自分类Dev

Python在运行时更改日志文件位置

来自分类Dev

在运行时更改错误日志位置

来自分类Dev

在运行时更改融合位置优先级

来自分类Dev

在运行时更改融合位置优先级

来自分类Dev

Imageview在运行时更改位置-Swift

来自分类Dev

为什么在运行时重新定义的此方法不保留其值?

来自分类Dev

为什么在运行时重新定义的此方法不保留其值?

来自分类Dev

在运行时更改属性文件中的值

来自分类Dev

为什么 Android 视图值在运行时不同?

来自分类Dev

在运行时更改字段属性

来自分类Dev

在运行时更改persistenceUnit属性

来自分类Dev

Delphi 和高 DPI:在运行时创建的控件获得错误的位置

来自分类Dev

在运行时更改宏的值

来自分类Dev

在运行时为用户控件中的 label.Text 赋予新值

来自分类Dev

在运行时重命名并更改android资源文件的文件夹位置

来自分类Dev

在运行时更改表排序器图标的位置

来自分类Dev

函数重载在运行时如何工作,为什么会重载?

来自分类Dev

为什么将新数组分配给变量会更改其引用值而不是值?

来自分类Dev

Ember.js在运行时获取位置类型

来自分类Dev

在运行时动态分配属性

来自分类Dev

在运行时更改.NET属性网格只读属性

来自分类Dev

在运行时更改.NET属性网格只读属性

来自分类Dev

在模拟器上运行时,SegmentedControl会更改位置

来自分类Dev

如何将函数在运行时计算出的值分配给表单控件?

来自分类Dev

如何将函数在运行时计算出的值分配给表单控件?

来自分类Dev

您可以在运行时更改Type的Name属性的值吗?

来自分类Dev

为什么我的按钮视图ID在运行时更改?

Related 相关文章

  1. 1

    c#在运行时更改标签(控件)的位置

  2. 2

    如何在vb.net Windows窗体中在运行时更改TableLayoutPanel控件中控件的位置

  3. 3

    Python在运行时更改日志文件位置

  4. 4

    在运行时更改错误日志位置

  5. 5

    在运行时更改融合位置优先级

  6. 6

    在运行时更改融合位置优先级

  7. 7

    Imageview在运行时更改位置-Swift

  8. 8

    为什么在运行时重新定义的此方法不保留其值?

  9. 9

    为什么在运行时重新定义的此方法不保留其值?

  10. 10

    在运行时更改属性文件中的值

  11. 11

    为什么 Android 视图值在运行时不同?

  12. 12

    在运行时更改字段属性

  13. 13

    在运行时更改persistenceUnit属性

  14. 14

    Delphi 和高 DPI:在运行时创建的控件获得错误的位置

  15. 15

    在运行时更改宏的值

  16. 16

    在运行时为用户控件中的 label.Text 赋予新值

  17. 17

    在运行时重命名并更改android资源文件的文件夹位置

  18. 18

    在运行时更改表排序器图标的位置

  19. 19

    函数重载在运行时如何工作,为什么会重载?

  20. 20

    为什么将新数组分配给变量会更改其引用值而不是值?

  21. 21

    Ember.js在运行时获取位置类型

  22. 22

    在运行时动态分配属性

  23. 23

    在运行时更改.NET属性网格只读属性

  24. 24

    在运行时更改.NET属性网格只读属性

  25. 25

    在模拟器上运行时,SegmentedControl会更改位置

  26. 26

    如何将函数在运行时计算出的值分配给表单控件?

  27. 27

    如何将函数在运行时计算出的值分配给表单控件?

  28. 28

    您可以在运行时更改Type的Name属性的值吗?

  29. 29

    为什么我的按钮视图ID在运行时更改?

热门标签

归档