我想在C/S界面上做一个类似B/S的不规则弹出框。
窗体上是地图,执行操作后,弹出一个不规则信息框来显示信息。
1,使用UserControl来做信息框时,因为没有TransparentKey这个属性,无法设置透明色,做不了不规则信息框。
2,用Form来做信息框时,可以设置透明,做出不规则信息框,但是在任务栏上会有两个窗体
3,主窗体使用MDIForm,这个任务栏只有一个窗体,但是由于地图容器是Dock=fill的,作为子窗体的信息框就看不到
(找个一个相关的帖子,不过到现在还未解决:
http://topic.csdn.net/t/20061124/20/5183699.html)。
请问,有没有更好的做不规则信息框的方法,或者上面三个问题有没有哪个有解决的方法。谢谢!

解决方案 »

  1.   

    用api
    参考这个:
    http://hi.baidu.com/xia0wen/blog/item/8f60f90376de9e773812bb20.html
      

  2.   

    to Dennis_maomao :
    我的方法就是用背景图做,因此1,使用UserControl不行。
    使用Form(2,3)就会出现一些不理想的事情。
      

  3.   

    感觉这个api就是将某种颜色设置为透明,这个C#的Form的TransparentKey就是这样的吧。就是我提到的第2点。
    现在我可以做出不规则的信息框,主要是还不理想。
      

  4.   

    你可以用 Form.Region 属性来做。
      

  5.   

    以前记得有个api可以传顶点的数组
    比如T字形的窗口需要传8个顶点
      

  6.   

    我现在是采用userControl,沿着我背景图片的边缘位置描了一下userControl(Region属性)的path,勉强达到了效果,
    就是这个路径的点太多。感觉有点傻。呵呵
    等更好的方法。
      

  7.   

    msgDlg.ShowInTaskbar=false;
    可以在任务栏上不显示窗体敢问:你做地图用什么,区域还是世界地图?
      

  8.   

    根据项目需要来定地图吧,都是区域的。世界地图,那是googlemap yahoomap等玩的游戏。