using System; using System.Collections.Generic; using System.ComponentModel; using System.Drawing; using System.Data; using System.Linq; using System.Text; using System.Windows.Forms;
namespace IconFreeArrangementPanel { public partial class FreePanel : Panel { /// <summary>移動する Control</summary> private Control target; private Control[] targetControls; private Control topLevelControl;
imageList1.ImageSize = new Size(width, height); this.LargeImageList = imageList1;
for (int i = 0; i < jpgFiles.Length; i++) { Image original = Bitmap.FromFile(jpgFiles[i]); Image thumbnail = this.createThumbnail(original, width, height);
public static class Win32ImageList { [DllImport("comctl32.dll")] public static extern bool ImageList_BeginDrag( IntPtr himlTrack, // イメージリストのハンドル int iTrack, // ドラッグするイメージの番号 int dxHotspot, // ドラッグ位置 (イメージ位置との相対座標) int dyHotspot // );
[DllImport("comctl32.dll")] public static extern bool ImageList_DragEnter( IntPtr hwndLock, // ドラッグするイメージの親となるウィンドウのハンドル int x, // ドラッグするイメージの表示位置 (ウィンドウ位置との相対座標) int y // );
imageList1.ImageSize = new Size(width, height); this.LargeImageList = imageList1;
for (int i = 0; i < jpgFiles.Length; i++) { Image original = Bitmap.FromFile(jpgFiles[i]); Image thumbnail = this.createThumbnail(original, width, height);
分類:[.NET]
2012/02/09(Thu) 15:05:05 編集(投稿者)
カスタムコントロールでPanelを作ってあります。
そこにラベルをおき、
ドラッグによりラベルの配置を変更しています。
それを、等間隔に配置したいです。
簡単に言うと、
デスクトップの【アイコンを等間隔に整列】と同じように、
ラベル(デスクトップだとアイコン)を等間隔に配置変更したいです。
今現在、ラベルを自由に配置変更することは出来ました。
ですが、等間隔に配置する方法がわかりません。
また、ラベルとラベルが重なることも禁止です。
何かうまくやる方法はありますでしょうか?
TableLayoutPanelを使えば出来るかな?とも思ったのですが、
よくわかりませんでした・・・
何かありましたら教えていただければと思います。