WinForm问题关于MDI和坐标请高手解答

wow5andy 2008-07-15 04:44:01
问题一:本人现在正在做一个Winform的应用程序,使用MDIParent作为主要窗口显示,为了好看也是为了方便,于是我就在MDIparent里添加了一个PictureBox,想要作为背景使用,同时可以把一些快捷按钮放在上面,但是结果这个PictureBox却出现在了MDIparent的最上层,把我其他程序的窗口都盖住看不见了,请教高手如何能调整MDIparent里控件的摆放层次?
问题二:请问如何能够取到DataGridView里面某一个正在编辑的单元格的坐标?(是要相对去FORM的坐标)我用了DataGridView里好几个方法试过(包括取鼠标坐标),结果取到的好像都是相对于DataGridView的坐标点!
望高手解答!高分
...全文
103 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
wow5andy 2008-07-17
  • 打赏
  • 举报
回复
背景是肯定不行的!因为我还要在上面加一些快捷按钮,就是是使用背景但是按钮还是会在窗体最上层,而且因为需求我实际是在MDI上加了一个splitContainer,左边作为导航栏使用的,所以说直接使用背景是不行的,而且还得考虑到用户调整窗体大小导致背景变形的情况。目前的方法是用SHOWDIALOG()方法显示子窗体(实际就是没用MDI),但这种方式并不好,所以才上来问问看有没有什么好的解决办法
assky124 2008-07-16
  • 打赏
  • 举报
回复
主窗体的背景
cychris 2008-07-16
  • 打赏
  • 举报
回复
MDIParent的Backgroundimage
wow5andy 2008-07-16
  • 打赏
  • 举报
回复
继续期待高手ING....第二个问题我已经解决了,虽然方法有点笨,首先用MousePosition取得鼠标相对于屏幕的坐标,然后减去窗体相对于屏幕的坐标(因为窗体是最大化的)就是了~谢谢楼上各位了
atlasroben 2008-07-16
  • 打赏
  • 举报
回复
[Quote=引用 4 楼 wow5andy 的回复:]
继续期待高手ING....第二个问题我已经解决了,虽然方法有点笨,首先用MousePosition取得鼠标相对于屏幕的坐标,然后减去窗体相对于屏幕的坐标(因为窗体是最大化的)就是了~谢谢楼上各位了
[/Quote]
如果用户不用鼠标点击cell编辑而用键盘的话你的方法就获取不到cell的相对位置啦!用我的方法吧嘿嘿,递归算出来
atlasroben 2008-07-15
  • 打赏
  • 举报
回复
[Quote=引用 2 楼 GentleCat 的回复:]
1: 试试BringToFront()
将子窗体都设置为TopMost=true试试

2: 既然你知道了单元格相对于DataGrid的坐标了,那再加上DataGrid相对于Form的坐标不就行了?
[/Quote]
我帮楼主试了第一个方法不行,还是被picturebox遮住了,我也想知道第一个问题的解决方法= =难道要调用传说中的api才行?期待高手的出场...
GentleCat 2008-07-15
  • 打赏
  • 举报
回复
1: 试试BringToFront()
将子窗体都设置为TopMost=true试试

2: 既然你知道了单元格相对于DataGrid的坐标了,那再加上DataGrid相对于Form的坐标不就行了?
atlasroben 2008-07-15
  • 打赏
  • 举报
回复
我刚才没有找到直接获取坐标的方法和属性
但是我想到解决的办法如下:
你可以获取到改cell的大小(是像素为单位),你也可以获取到他在datagridview中的位置(是行列坐标)然后你得一个个往上爬的方式来计算出他的纵坐标和横坐标,如果没有直接获取想对位置的办法的话这个方法我想能解决你的问题this.dataGridView1.CurrentCell来获取cell然后计算坐标

110,032

社区成员

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

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

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