2014年3月5日水曜日

VB ソフト間の情報伝達 クリップボードとドラッグドロップ

他のソフトとの情報の遣り取りには色々な方法があります。
外部ファイルを介してする方法としては、CSV (カンマ区切り)ファイルなどが有名ですね。
一般的には、クリップボードとドラッグドロップを避けては通れないでしょう。
このふたつ、とても、操作が楽で、広まっているので、是非、利用したいですね。


VB を習い出しの頃、良く目にした、ファイル操作のロジック。
フォルダを選択してファイルを指定するくだり。
基本を押さえるには重要ですが、
ファイルブラウザ( Explorer )から、直接、ドラッグドロップする簡便さは魅力です。
同じ様に、テキスト入力時の、
キーボード・ショートカットで有名な Ctrl + C、 Ctrl + V のクリップボード経由の柔軟性も魅力です。
キーボードだけでなくマウス右クリックにも同様な機能が割り当てられていますね。

ソフト作成時の基本動作を決めるシステム設計とは異なりますが、
ユーザー支援や使い易さの為、なるべく、利用しています。


細かいコードの説明は、色々な所でご紹介や説明がありますので、省きますが、
概要は、以下の通りです。

クリップボードについては、
  基本的な機能は、貼り付けるコントロールに既に実装されている。
  例えば、TextBox を貼り付ければ、実行時にキーボードやマウス操作で、その恩恵に与れる。
  ボタンひとつで実現したい とか Label に表示したい といった場合は、コーディングが必要。

     クリップボードのデータの格納と読み込み   msdn  VisualStudio2008  VB My.Computer.Clipboard

     Clipboard クラス  msdn  .NET Framework  System.Windows.Clipboard
  

ドラッグドロップについては、
  お決まりのコードを書いて、実現させる必要がある。
  1. コントロールの AllowDrop プロパティを True に設定する。
  2. コントロールの DragEnter プロパティを処理する。
  3. コントロールの DragDrop プロパティを処理する。
データの属性に留意してコードを書く。

     ドラッグ アンド ドロップ操作の実行  msdn  .NET Framework  VB の例示あり



注意点を幾つか。


相手あっての事です.
自分のソフトがサポートしても、対象となるソフトがサポートしていなければ、使えません。

 例: 画像の中の文字は駄目。 許可していない場合も駄目。
      ソフトによって、クリップボードへのコピーや、ドラッグ・アウトを禁止している場合がある。
      ドラッグ・アウトは駄目でも、クリップボードへのコピーは認めている場合もある。
      ショートカット文字列の様に、URL が送られるか 文字列が送られるか 確認が必要な場合もある。
 
つまり、利用したい相手の事を良く調べてから という事ですね。


多くの場合、これらの機能は、受け入れる事が前提になりますが、
送り出す事も考慮した方が良い場合もあります。  稀とは思いますが。
更に、ソフト内で送り出しと受け取りと両方を実装する高度なものまで。

実際に、作ってみるのが一番。
出来上がったソフトを使ってみると、便利さが分かりますし、
逆に、送り出し側が対応していない場合に 「 これが出来れば 」 と、気付くと思います。
一般的に、受け入れ側を作る事が多いとは思いますが、
是非、送り出し側になる事も考えて見て下さい。

これらのユーザー支援機能は、使い込む事でヒントが芽生えたりします。


   上記の内容は、Windows Form を利用する前提の文です。
   つい、数日前、Microsoft さまが発表になった " Windows8_UXguide " を眺めていると、
   ソフト開発の流れも変化の潮目に入ったのかなぁと言う感想も持っています。
   この資料の中にも、クリップボード p 380 ~ についての項目があったりしますね。
   あまりにも、膨大な量なので、斜め読みですけれど、参考になりそうなテーマが一杯です 。


0 件のコメント:

コメントを投稿