如何创建一个仅由TitleBar垂直移动的WinForms表单?只能垂直移动表格
Q
只能垂直移动表格
2
A
回答
5
您必须拦截Windows发送的WM_MOVING通知消息。这里的代码:
using System.Runtime.InteropServices;
...
public partial class Form1 : Form {
public Form1() {
InitializeComponent();
}
private struct RECT {
public int left, top, right, bottom;
}
protected override void WndProc(ref Message m) {
if (m.Msg == 0x216) { // Trap WM_MOVING
var rc = (RECT)Marshal.PtrToStructure(m.LParam, typeof(RECT));
int w = rc.right - rc.left;
rc.left = this.Left;
rc.right = rc.left + w;
Marshal.StructureToPtr(rc, m.LParam, false);
}
base.WndProc(ref m);
}
}
3
这将做到这一点(但不漂亮):
private void MainForm_Move(object sender, EventArgs e)
{
this.Left = 100;
}
+0
您的解决方案可以正常工作,但形式抽搐 – SiberianGuy 2010-11-29 10:36:42
+0
我说这不太好。 – 2010-11-29 10:37:29
1
您可以通过表单的位置重置为初始X值和移动的Y值快捷的移动操作。这个解决方案很简单,但会闪烁一点。
protected Point StartPosition { get; set; }
protected override void OnLoad(EventArgs e)
{
base.OnLoad(e);
StartPosition = this.Location;
}
protected override void OnMove(EventArgs e)
{
if (StartPosition == new Point())
return;
var currentLocation = Location;
Location = new Point(StartPosition.X, currentLocation.Y);
base.OnMove(e);
}
相关问题
- 1. AIR:NativeWindow startMove只能垂直移动?
- 2. EDITTEXT只移动垂直的Andriod
- 3. 使Java JScrollpane只能垂直滚动
- 4. Android列表视图行移动垂直
- 5. 垂直移动水平移动div
- 6. iframe - 垂直滚动只有
- 7. ScrollViewer垂直偏移动画
- 8. 如何计算在表格中垂直移动的尾随移动总和?
- 9. HTML,CSS:使表格可垂直滚动
- 10. 表格单元格垂直滚动条一直保持禁用
- 11. HTML - 格式化垂直表
- 12. 垂直对齐无表格
- 13. HTML - 垂直对齐表格
- 14. 显示表格垂直
- 15. 只有垂直滚动条与垂直边缘的div
- 16. pyqtgraph:禁用垂直移动(滚动)
- 17. 垂直滚动时水平移动DIV
- 18. 动画:水平和垂直移动ImageButton
- 19. 移动垂直滚动功能无法使用*雪碧自旋*
- 20. 强制div只能垂直扩展
- 21. Bootsrap垂直滚动表
- 22. 垂直滚动为html表
- 23. ,不能垂直?
- 24. Flex移动列表不会垂直滚动
- 25. CSS:div垂直固定,但水平移动
- 26. 垂直移动的JavaScript上的UIWebView
- 27. 在UIToolBar中垂直移动UIBarButtonItem
- 28. 蛇在垂直块中移动
- 29. 使用Android传感器可以检测垂直移动(只能上下移动)吗?
- 30. Jquery移动最后一个网格项目不垂直对齐
自动移动?? “感动”是什么意思? – Shoban 2010-11-29 09:40:30
我的意思是当用户移动窗体时,不应该水平移动 - 只能垂直移动 – SiberianGuy 2010-11-29 09:42:22