如何开发像win8画面一样的winform???

hansin 2014-07-02 01:59:25
方块的按钮.并且可以拖动位置.

vs2012可以吗?或者第三方免费控件.
...全文
255 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
hbsyuyang 2016-04-20
  • 打赏
  • 举报
回复
引用 3 楼 happy09li 的回复:

using System.Runtime.InteropServices; 
//并为控件 添加 MouseDown 事件
 
// C#鼠标拖动任意控件
 
// 利用Windows的API函数:SendMessage 和 ReleaseCapture 
const uint WM_SYSCOMMAND = 0x0112;
const uint SC_MOVE = 0xF010;
const uint HTCAPTION = 0x0002;
 
[DllImport("user32.dll", EntryPoint = "SendMessageA")]
private static extern int SendMessage(IntPtr hwnd, uint wMsg, uint wParam, uint lParam);
[DllImport("user32.dll")]
private static extern int ReleaseCapture();
 
void ControlMouseDown(object sender, MouseEventArgs e)
{
    ReleaseCapture();
    SendMessage((sender as Control).Handle, WM_SYSCOMMAND, SC_MOVE + HTCAPTION, 0);
}
可以拖拽,但是有下面这种情况: 类似手机拖拽按钮一样,把前面的按钮拖到后面,剩余的按钮再次排序?
forcyever 2014-07-03
  • 打赏
  • 举报
回复
http://bbs.csdn.net/topics/390382552
熙风 2014-07-02
  • 打赏
  • 举报
回复

using System.Runtime.InteropServices; 
//并为控件 添加 MouseDown 事件
 
// C#鼠标拖动任意控件
 
// 利用Windows的API函数:SendMessage 和 ReleaseCapture 
const uint WM_SYSCOMMAND = 0x0112;
const uint SC_MOVE = 0xF010;
const uint HTCAPTION = 0x0002;
 
[DllImport("user32.dll", EntryPoint = "SendMessageA")]
private static extern int SendMessage(IntPtr hwnd, uint wMsg, uint wParam, uint lParam);
[DllImport("user32.dll")]
private static extern int ReleaseCapture();
 
void ControlMouseDown(object sender, MouseEventArgs e)
{
    ReleaseCapture();
    SendMessage((sender as Control).Handle, WM_SYSCOMMAND, SC_MOVE + HTCAPTION, 0);
}

110,567

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧