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了,而且最开始编的时候左右键移动还好使说明条件没有问题,您看还能怎么办呢?
另外计算一下按键以后条件是否成立 参考技术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 如何用上下左右键改变控件位置,但是不改变焦点位置?的主要内容,如果未能解决你的问题,请参考以下文章