北の窓から(芦田っち)

PC関連と私的雑感のブログ。
2015年7月10日、カッコ内に名前を加えました。昔の友だちに気付いてほしくて・・・

ドラッグ&ドロップで、絵がマウスポインターに追随しない・・・

2020-02-04 10:03:26 | VB.NET
昨日、Ash ShrinkBox を公開しました。

  

  先月 20日に着想を得て、開発開始・・・
  公開が 2月3日なので、ちょうど 2週間かかったことになります。

数日でおおよその画面や動作が決まりました。

  1週間もあれば、ほぼ完成形になるだろうと思っていました。
  それがなぜ2週間もかかったのか・・・

解決に最も時間がかかったのは、DragOver 時の動作。

  フォルダーとかファイルをマウスでドラッグして
  Ash ShrinkBox にドロップします。

  次の3つのイベントを使います(ハンドルします)。
    1. DragEnter
    2. DragOver
    3. DragDrop

  何となく想像できると思いますが・・・
    DragEnter は、特定の場所にマウスポインターが入った時に働きます。
    DragOver は、その上でマウスポインターが動いている時に働きます。
    DragDrop は、そこにドロップされた時に働きます。

問題は DragOver 時の動作。

  フォルダーをドラッグ&ドロップした時の画像です・・・
  

  最初、フォルダーの絵がマウスポインターに追随しているのが分かると思います。
  これが望む動作です。

  ところが、絵はマウスポインターとはかけ離れた位置で動くので
  たいていの場合、見えません。

  # ドラッグ&ドロップの動作は他のソフトでも実装していました。
    期待どおりに動作していたので、コード(プログラム)もそれらと同じです。

    ですが、ポインターに追随する絵をコンテナ内に置いたばかりに
    思ったとおりにならなかった・・・

    座標変換しているので
    クライアント画面(Ash ShrinkBox)上に絵が表示されるはずなのに・・・

この原因が分かるのに3日ほどかかりました。

  原因は実にツマラナイところにありました・・・

  Ash ShrinkBox は Windows Form(フォーム)。

  フォーム上にコンテナを置いています。
  縮小サイズとか縮小方法などが含まれるコンテナです。

  このコンテナの中に、ポインターに追随する絵を置いていました。

  これがマズかったのです。
  コンテナ内ではなく、フォームの上(コンテナの外)に置けばよかったのです。

  これに気付くのに数日かかったのです・・・ (^-^;

ま、それ以外にも手間取った部分はあります。

  簡単そうに見えて、意外に時間がかかる部分があります。
  小さなソフトでもそんな部分がいくつかあるものです。

  そんなこんなで2週間かかった次第・・・ (^-^;

それでも公開できた時はウレシイ。

  プロから見れば素人ですが、
  それなりに技術的(?)な向上も感じられます。

昨年6月から試行錯誤中の(若干)大きめのソフトは
いつになったら日の目を見るのだろうか・・・

  昨年末2、3か月、MSDN, TechNet フォーラムに出没していたので
  まるっきり進んでいません。

  完成したら、こんな画面になります(現時点での予定)。
  

Ash ShrinkBox のダウンロードはここから>・・・

---------------------------------------------------------
ブログ記事についてのお問い合わせは「質疑応答 掲示板」で・・・

  # ご質問にはできる限りお答えしています。https://blog.goo.ne.jp/img/static/admin/editor/btn-preview.gif
    ただし、お名前(本名の姓 and/or 名)を書いていただいた場合に限らせていただきます。


ここをクリックして、北窓舎のサイトにもお立ち寄りください・・・
コメント    この記事についてブログを書く
  • X
  • Facebookでシェアする
  • はてなブックマークに追加する
  • LINEでシェアする
« Ash ShrinkBox 新登場! | トップ | WHO - 新型コロナウイルス対... »
最新の画像もっと見る

コメントを投稿

ブログ作成者から承認されるまでコメントは反映されません。

VB.NET」カテゴリの最新記事