vb 如何用上下左右键改变控件位置,但是不改变焦点位置?

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了vb 如何用上下左右键改变控件位置,但是不改变焦点位置?相关的知识,希望对你有一定的参考价值。

我编写了一个打砖块的游戏,但是按左右键的时候只是焦点在两个command按钮之间变换,控件不左右移动,请问我该怎么办?另外我想加一个scrollbar来改变小球速度,但是用左右键的时候会改变scrollbar的值,怎么办?
多谢各位了!
马上就交作业了,急啊!!!
以下是代码

Private Sub Form_KeyDown(KeyCode As Integer, Shift As Integer)

If KeyCode = vbKeyLeft Then
If Command7.Left < 0 Then
Else
Command7.Left = Command7.Left - 100
End If
End If

If KeyCode = vbKeyRight Then
If Command7.Left + Command7.Width >= Line1.X1 Then
Else
Command7.Left = Command7.Left + 100
End If
End If

End Sub
谢谢您!您说的方法我已经试过了,但是不好使。我已经把没有用的控件都设为enabled=FALSE了,有用的控件tapstop也设为FALSE了,而且最开始编的时候左右键移动还好使说明条件没有问题,您看还能怎么办呢?

把表单和表单上的所有控件的tabstop属性设置为假试试
另外计算一下按键以后条件是否成立
参考技术A 建议游戏时所有控件设为不可见。当按ESC键时,暂停游戏,恢复控件为可见。

如何用动画改变按钮的位置

【中文标题】如何用动画改变按钮的位置【英文标题】:how to change position of button with Animation 【发布时间】:2017-06-29 08:50:48 【问题描述】:

按下时改变位置。 UIButton * 按钮 = 发送者;

CGPoint position = button.frame.origin;
[UIButton setAnimationDuration:1.0];

CGSize size = button.frame.size;
button.frame = CGRectMake(position.x + 80,position.y,size.width,size.height);

【问题讨论】:

developer.apple.com/documentation/uikit/uiview/1622418-animate 你得到答案了吗? 【参考方案1】:

试试这个:

[UIView animateWithDuration:1.0 animations:^
   btn.frame = CGRectOffset(btn.frame, 0, 20);
];

【讨论】:

【参考方案2】:

用于动画UIButton 的位置,持续时间为 1.0 秒

        CGPoint position = button.frame.origin;
        CGSize size = button.frame.size;

        -(IBAction)btnClick:(id)sender 
               [UIView animateWithDuration:1.0 animations:^
                    button.frame = CGRectMake(position.x+80,position.y,size.width,size.height);
                ];
        

【讨论】:

【参考方案3】:

试试这个:

button.frame = CGRectMake(position.x + 80,position.y,size.width,size.height); // initial frame

 [UIView animateWithDuration:2 animations:^
             button.frame = CGRectMake(position.x + 80,position.y,size.width,size.height); // new frame frame

         completion:^(BOOL finished) 

        ];

【讨论】:

【参考方案4】:

您可以使用 UIView 类的动画块 ...

无论您更改此块内的框架,画布都会填充中间的框架 设置起始帧

button.frame= yourInitialFrame;

 [UIView animateWithDuration:1.0 animations:^
  // set the End Frame here
                 button.frame = CGRectMake(position.x + 
             80,position.y,size.width,size.height); // new frame frame

             completion:^(BOOL finished) 

            ];

另请参阅see this 以获得更多帮助

【讨论】:

【参考方案5】:
[UIView animateWithDuration:1.0 animations:^
  // set the End Frame here
                 button.frame = CGRectMake(position.x + 
             80,position.y,size.width,size.height); // new frame frame

             completion:^(BOOL finished) 

            ];

【讨论】:

【参考方案6】:

试试这个:

-(IBAction)ButtonClick:(id)sender

    UIButton *aBtnRef = sender;
    [UIView animateWithDuration:0.5 animations:^
        aBtnRef.frame = CGRectMake(aBtnRef.frame.origin.x + 50,aBtnRef.frame.origin.y, aBtnRef.frame.size.width, aBtnRef.frame.size.height);
     completion:^(BOOL finished) 
    ];

更多信息:

Animation : How to make UIbutton move from right to left when view is loaded?

Moving UIButton position, animated

【讨论】:

【参考方案7】:
     [UIView animateWithDuration:0.2 animations:^
        CGRect rect = button.frame;
        rect.origin.x = rect.origin.x + 80;
        button.frame = rect;
     completion:^(BOOL finished) 

    ];

【讨论】:

虽然此代码可能会回答问题,但提供有关它如何和/或为什么解决问题的额外上下文将提高​​答案的长期价值。

以上是关于vb 如何用上下左右键改变控件位置,但是不改变焦点位置?的主要内容,如果未能解决你的问题,请参考以下文章

vb中如何使窗体和控件的相对位置不发生改变

在vb中人如何用 shape控件画圆?

winform Form 内控件焦点变化?

.net中如何动态改变Label控件的位置

如何用js改变平板电脑的输入焦点?

改变控件在窗体中的上下位置应修改控件的啥属性 这些属性在编程里面会用到