问题一:本人现在正在做一个Winform的应用程序,使用MDIParent作为主要窗口显示,为了好看也是为了方便,于是我就在MDIparent里添加了一个PictureBox,想要作为背景使用,同时可以把一些快捷按钮放在上面,但是结果这个PictureBox却出现在了MDIparent的最上层,把我其他程序的窗口都盖住看不见了,请教高手如何能调整MDIparent里控件的摆放层次?
问题二:请问如何能够取到DataGridView里面某一个正在编辑的单元格的坐标?(是要相对去FORM的坐标)我用了DataGridView里好几个方法试过(包括取鼠标坐标),结果取到的好像都是相对于DataGridView的坐标点!
望高手解答!高分

解决方案 »

  1.   

    我刚才没有找到直接获取坐标的方法和属性
    但是我想到解决的办法如下:
    你可以获取到改cell的大小(是像素为单位),你也可以获取到他在datagridview中的位置(是行列坐标)然后你得一个个往上爬的方式来计算出他的纵坐标和横坐标,如果没有直接获取想对位置的办法的话这个方法我想能解决你的问题this.dataGridView1.CurrentCell来获取cell然后计算坐标
      

  2.   

    1: 试试BringToFront()
       将子窗体都设置为TopMost=true试试2: 既然你知道了单元格相对于DataGrid的坐标了,那再加上DataGrid相对于Form的坐标不就行了?
      

  3.   

    我帮楼主试了第一个方法不行,还是被picturebox遮住了,我也想知道第一个问题的解决方法= =难道要调用传说中的api才行?期待高手的出场...
      

  4.   

    继续期待高手ING....第二个问题我已经解决了,虽然方法有点笨,首先用MousePosition取得鼠标相对于屏幕的坐标,然后减去窗体相对于屏幕的坐标(因为窗体是最大化的)就是了~谢谢楼上各位了
      

  5.   

    如果用户不用鼠标点击cell编辑而用键盘的话你的方法就获取不到cell的相对位置啦!用我的方法吧嘿嘿,递归算出来
      

  6.   

    背景是肯定不行的!因为我还要在上面加一些快捷按钮,就是是使用背景但是按钮还是会在窗体最上层,而且因为需求我实际是在MDI上加了一个splitContainer,左边作为导航栏使用的,所以说直接使用背景是不行的,而且还得考虑到用户调整窗体大小导致背景变形的情况。目前的方法是用SHOWDIALOG()方法显示子窗体(实际就是没用MDI),但这种方式并不好,所以才上来问问看有没有什么好的解决办法