none
关于改写ComboBox RRS feed

  • 问题

  • 我打算重写ComboBox,实现自定义的下拉列表功能(例如分多列,字体颜色各不同等)。但是应该如何下手?因为下拉列表不是在容器范围内的,下拉时会超出容器边缘,这个应该怎样编写呢?
    谢谢:)
    2009年2月13日 5:55

答案

全部回复

  • 弹谈出的部分  你就当成 form 或者menustrip 来修改就好了
    Guitar Hero IV -- Singing Rock & Roll.
    2009年2月13日 6:51
  • 韦恩卑鄙 说:

    弹谈出的部分  你就当成 form 或者menustrip 来修改就好了


    Guitar Hero IV -- Singing Rock & Roll.



    使用Form或MenuStrip是个很好的办法。Form的编程自由空间更大些。

    再问,Form和控件的坐标系似乎是不一样的,那么如何让弹出的Form或者MenuStrip定位在控件所在的位置下方(或者右边或者任意位置)?

    谢谢啦:)
    2009年2月14日 0:46
  • 你好!
         控件位置的Y坐标加上控件的高度就得到显示列表位置的Y坐标。
         控件位置的X坐标就是显示列表位置的X坐标。 

    周雪峰
    2009年2月14日 10:23
    版主
  • 周雪峰 说:

    你好!
         控件位置的Y坐标加上控件的高度就得到显示列表位置的Y坐标。
         控件位置的X坐标就是显示列表位置的X坐标。 


    周雪峰



    我不是指同一个容器内的两个控件的坐标关系哦
    而是一个窗体A上的某控件a和另一个窗体B的坐标关系,a的坐标系是基于A的,而B的坐标系是基于Screen的
    我想知道这是怎么换算的,因为因应分辨率不同,B的坐标是会变化的,而a基于窗体A的坐标不变。

    而且若FormBorderStyle<>None,则根据操作系统的不同,窗体的边界宽度不一样,也会影响窗体尺寸,也因此会导致B的坐标发生变化。
    这个窗体边界又该怎么换算呢?
    谢谢:)
    2009年2月14日 12:03
  • system.drawing.point  

    PointToClient()
            PointToScreen()

    这两个方法似乎能帮的上你哦


    梁赫群是榜样 赵正平是偶像 恩?还有个人么?
    • 已标记为答案 abcjackson 2009年2月16日 14:14
    2009年2月14日 15:03