MouseDown中用SendMessage改变控件大小

guojh021 2014-01-16 04:18:31
MouseDown中用SendMessage改变控件大小.
控件大小变为:132*58后,再无法变小,只能变大,怎么回事?


private void Form1_MouseDown(object sender, MouseEventArgs e)
{
int msg = 0;
if (e.Button == System.Windows.Forms.MouseButtons.Left)
{
ReleaseCapture();
switch (Action)
{
case "Left":
msg = 0xF001; break;
case "Right":
msg = 0xF002; break;
case "Up":
msg = 0xF003; break;
case "LeftUp":
msg = 0xF004; break;
case "RightUp":
msg = 0xF005; break;
case "Down":
msg = 0xF006; break;
case "LeftDown":
msg = 0xF007; break;
case "RightDown":
msg = 0xF008; break;
case "Move":
msg = SC_MOVE + HTCAPTION; break;
default:
msg = 0; break;
}
if (msg > 0)
{
SendMessage(SelectLabel.Handle, WM_SYSCOMMAND, msg, 0);
}
}
}
...全文
139 9 打赏 收藏 转发到动态 举报
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
guojh021 2014-01-16
  • 打赏
  • 举报
回复
妈的.微软BUG,找到原因了.

this.label1.BorderStyle = System.Windows.Forms.BorderStyle.FixedSingle;

//如果设置为None没关系.
this.label1.BorderStyle = System.Windows.Forms.BorderStyle.None;
guojh021 2014-01-16
  • 打赏
  • 举报
回复
引用 7 楼 tangyanzhi1111 的回复:
Action是委托,他能作为case选择?
Action是个字符串,看他是向上还是向下,向左还是向右拖动.
江湖评谈 2014-01-16
  • 打赏
  • 举报
回复
Action是委托,他能作为case选择?
guojh021 2014-01-16
  • 打赏
  • 举报
回复
引用 3 楼 guojh021 的回复:
那就感觉像把窗口缩小,窗口也只能缩到 宽度132, 高度38 再也不能缩小了. 和这个有关吗?
这个可能我没说清楚. 在C#中,新建一个窗口,运行程序,显示这个窗口.用鼠标修改这个窗口大小,最小也只能到132*38. 我觉得是这个原因,但不知道怎么解决.
guojh021 2014-01-16
  • 打赏
  • 举报
回复
MininumSize 都是 默认值 (0,0)
rtdb 2014-01-16
  • 打赏
  • 举报
回复
所有控件都有MininumSize属性的,试试先修改它。
guojh021 2014-01-16
  • 打赏
  • 举报
回复
那就感觉像把窗口缩小,窗口也只能缩到 宽度132, 高度38 再也不能缩小了. 和这个有关吗?
guojh021 2014-01-16
  • 打赏
  • 举报
回复
控件无大小限制. 变大可以.变小不行. 宽度132, 高度38 如果在初始化高度或宽度比上述值小,拖动后,控件突然会变成上述值. 很奇怪.
bdmh 2014-01-16
  • 打赏
  • 举报
回复
控件有大小限制吗或者检查 你的代码,看看是不是在某个位置时,你的action不能满足case要求

110,533

社区成员

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

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

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