MessageBox弹出位置问题

tailor_ms 2008-11-26 05:28:37
问题很简单,就是 MessageBox 每次都在屏幕中央弹出.因为我的程序的 lop 和 left 是自定义的.
所以我想让 MessageBox 在我的窗体中央弹出.

问题很明确,哪位大哥给看看.谢啦.
...全文
1036 13 打赏 收藏 转发到动态 举报
写回复
用AI写文章
13 条回复
切换为时间正序
请发表友善的回复…
发表回复
flyjimi 2008-11-27
  • 打赏
  • 举报
回复

(1)开一个线程,调用FindWindow查找MessageBox,找到后调用MoveWindow移动MessageBox。GetWindowRect用来获取MessageBox的显示位置和长宽,用于计算MoveWindow的参数。
(2)弹出MessageBox。



[DllImport("User32")]
static extern bool MoveWindow(uint hwnd, int x, int y, int width, int height, bool rePaint);
[DllImport("User32")]
static extern uint FindWindow(string className, string windowName);
[DllImport("User32")]
static extern bool GetWindowRect(uint hwnd, ref RECT rect);

pp_shy 2008-11-27
  • 打赏
  • 举报
回复
[Quote=引用 11 楼 tailor_ms 的回复:]
我意思不是子窗体的位置,子窗体的 CenterParent,我也知道.就是在父窗体的中心位置弹出.
我说的是 MessageBox.Show("...content.."); 这个类库方法.
怎么让它在我的窗体的中心显示.因为它总是在屏幕的中心显示. 谢谢.
[/Quote]

楼上人的意思是让楼主仿照MessageBox对话框来自己做个Form窗体,这样就能控制显示位置了
tailor_ms 2008-11-27
  • 打赏
  • 举报
回复
我意思不是子窗体的位置,子窗体的 CenterParent,我也知道.就是在父窗体的中心位置弹出.
我说的是 MessageBox.Show("...content.."); 这个类库方法.
怎么让它在我的窗体的中心显示.因为它总是在屏幕的中心显示. 谢谢.
sciolist 2008-11-26
  • 打赏
  • 举报
回复
真没注意。。学习了
CruelYoung123 2008-11-26
  • 打赏
  • 举报
回复
好像是固定父窗体中心吧.
LoveInterMilan 2008-11-26
  • 打赏
  • 举报
回复
自定义窗口
然后设置属性StartPosition:CenterParent
Yes1000 2008-11-26
  • 打赏
  • 举报
回复
自定义弹出对话框的窗体,然后设置这个窗体的StartPosition属性为CenterParent,

之后在需要弹出对话框时调用这个窗体的ShowDialog()方法,这个就可以使弹出对话框在父窗体居中
my_edxp 2008-11-26
  • 打赏
  • 举报
回复
messagebox一弹出来不就是在窗体中央了吗?
xuefeny 2008-11-26
  • 打赏
  • 举报
回复
帮顶
舞台中央的我 2008-11-26
  • 打赏
  • 举报
回复
xuexi
zhaozhijun0207 2008-11-26
  • 打赏
  • 举报
回复

Top, Bottom, Left, Right
长沙三毛 2008-11-26
  • 打赏
  • 举报
回复
自创建Dialog窗体

111,130

社区成员

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

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

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