![](http://oshiete.xgoo.jp/images/v2/pc/qa/question_title.png?e8efa67)
フォームをなめらかに移動する方法はないでしょうか?
以下のコードのように、Locationで位置を変更すると、カクカク移動してしまいます。
ご存知の方おしえてください。どうぞよろしくお願いいたします。
Private Sub Form1_Mousemove(ByVal sender As Object, ByVal e As System.Windows.Forms.MouseEventArgs) Handles MyBase.MouseMove
Dim WorkingArea As Rectangle = Screen.PrimaryScreen.WorkingArea
Dim MousePos As Point = Me.PointToClient(Windows.Forms.Cursor.Position)
'上に移動
If Me.Size.Height * 0.8 < MousePos.Y And Me.Location.Y > 0 Then
Me.Location = New Point(Me.Location.X, Me.Location.Y - 20)
End If
'下に移動
If Me.Size.Height * 0.2 > MousePos.Y And (Me.Location.Y + Me.Size.Height) < WorkingArea.Height Then
Me.Location = New Point(Me.Location.X, Me.Location.Y + 20)
End If
'左に移動
If Me.Size.Width * 0.8 < MousePos.X And Me.Location.X > 0 Then
Me.Location = New Point(Me.Location.X - 20, Me.Location.Y)
End If
'右に移動
If Me.Size.Width * 0.2 > MousePos.X And (Me.Location.X + Me.Size.Width) < WorkingArea.Width Then
Me.Location = New Point(Me.Location.X + 20, Me.Location.Y)
End If
End Sub
No.1ベストアンサー
- 回答日時:
こんにちは
用途はわかりませんが逃げるフォーム
面白いプログラムですね~
既に解決していらっしゃるかもしれませんが
20を1にしてみてはいかがでしょうか
1.8GHz 2GB でもスムーズに動きましたよ
この回答への補足
作りたいイメージのソフトを見つけました。
mag4pという拡大鏡フリーソフトです。
こちらはスムーズに動きました。
スペックの問題ではないようです。
APIをつかうか、フォームをペイントで描いてみます。
No.2
- 回答日時:
>> 1.8GHz 2GB でもスムーズに動きましたよ
> 20を1にすると、移動速度が遅いんです。。。
スムーズには動いたのですか?
スペックの悪いPCでどうにかしようという話なのか、
1回の移動距離を20にしたい話なのかが分かりません
でした。
ただ、後者でも、1回のトリガーで1から20までの座標に
順番に移動させればいいだけに思えますけどね。
プログラム関係なく、小学生がなぞなぞ解くレベルの
発想にも思いますが。
回答ありがとうございます。
初めは移動距離を+1にしていたのですが、
ゆっくりいどうするので+20にしました。
そうするとカクカクしながら移動していくので、
なめらかに移動できないものか考えています。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- PHP 入力した部分を表示させたまま(保持)するにはどうすれば良いでしょうか? 1 2023/01/25 11:14
- PHP PHPで画像の渡しが上手く行きません。 1 2023/02/02 09:39
- Access(アクセス) Accessのテキストボックスの入力文字制限 1 2023/01/18 20:43
- Access(アクセス) DoCmd.SearchForRecord が動かない時の解決方法 3 2022/07/22 15:31
- Access(アクセス) チェックボックスにチェックが入った後の挙動 1 2022/08/21 12:39
- Visual Basic(VBA) 【VBA】写真の貼り付けコードがうまく機能しません。 5 2022/09/01 18:43
- Visual Basic(VBA) ①ExcelVBAでカレンダーを作り、別のユザーフォームで日付を入力したいのですがエラーになります。 1 2023/02/17 18:39
- Access(アクセス) docmd.gotorecordを起動するには 5 2022/06/17 15:20
- その他(SNS・コミュニケーションサービス) 自分のpcがハッキングされたようなメールが来たのですがどうすればいいですか? 4 2022/10/02 16:14
- Visual Basic(VBA) VBAの繰り返し処理について教えてください。 3 2022/08/02 13:21
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
グラフの交点の求め方(Excel)
-
マインクラフト(pc版)で座標...
-
C言語 配列で座標
-
GLで座標を変えて回転させたい
-
ClientToScreen
-
球面状に円を描くプログラム
-
スクリーン座標からワールド座...
-
エクセルシート上のマウスポイ...
-
バイキュービック補間のプログラム
-
3次元空間上の2つの座標から...
-
エクセルである点からの距離で...
-
交差する2線分の交点座標の求め方
-
ダイアログ内コントロールの位...
-
正規表現の書き方(座標関係)
-
フォントの大きさ
-
フォームでPDFを表示させた...
-
ゲームでは結局どっちが良いの?
-
VBで外部プログラムを位置のみ...
-
エクセルで作った新しいウイン...
-
エクセルのコントロールツール...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
グラフの交点の求め方(Excel)
-
マインクラフト(pc版)で座標...
-
3次元空間上の2つの座標から...
-
エクセルである点からの距離で...
-
始点、終点の二つの座標と半径...
-
エクセルで回転する座標の出し方
-
閉図形の座標の配列が右回りか...
-
ワード上Shapeの位置情報を統一...
-
以下のプログラムは重心を求め...
-
C言語 配列で座標
-
ダイアログ内コントロールの位...
-
ガウシアンフィルタのCプログラム
-
空間上の二点を結ぶ直線上に任...
-
エクセルシート上のマウスポイ...
-
シーケンサー(PLC?)で制...
-
VB6のPrinter.ScaleWidth に対...
-
多角形の内部かどうか判定する方法
-
直線上にある点の座標の求め方
-
y=x^2の座標をプロットするプロ...
-
ピクチャボックスの座標取得
おすすめ情報