我想直接用vb提供的Slider改进成任意形状,似乎有点难,不过你可以自己做个activeX控件。界面自己设计(就象设计窗体一样,放上自己喜欢控件如image等),因为是Slider我想不会有很多属性,事件的,自己模仿Slider的几个主要要用到的属性、事件、方法,写进你的控件里去。
1、写属性:
   dim m_formatmask as string
   Public progerty Get FormatMask() as String
      FormatMask=Mm_FormatMask
  End Property
  Pblic Property Let FormatMask(ByVal New_FormatMask as String)
     m_FormatiMask=New_formatMask
     PropertyChanged "FormatMask"
  End Property
2、写方法
  Public Sub Clear()
    text1.text=""    'text1是自己添加上去的控件
  End Sub
3、写事件
  Public Sub text1_Change()    'text1_Change 是自己定义的时间名
     RaiseEvent Change     
     CheckSetChang
  End Sub

解决方案 »

  1.   

    想改slide控件是不可能的了,除非你自己重新做一个。
      

  2.   

    BDZWC:请问,在SKIN中,如何来做
      

  3.   

    这是我所作的一个控件,也许有帮助.
    控件上只放一个PictureBox控件
    Option Explicit
    '缺省属性值:
    Const m_def_EndValue = 0
    Const m_def_StartValue = 0
    Const m_def_Max = 0
    Const m_def_Min = 0
    Const m_def_NowValue = 1
    '属性变量:
    Dim m_EndValue As Long 'EndValue
    Dim m_StartValue As Long 'StartValue
    Dim m_Max As Long 'Max
    Dim m_Min As Long 'Min
    Dim m_NowValue As Long 'NowValue
    Dim m_Offset As Single '滑动块的物理偏移量
    Dim m_PlaceHolder As Single '滑动块当前物理位置
    Dim m_fSlide As Boolean '是否移动滑动块
    Dim m_SliderPos As Single '滑标当前的物理位置
    '事件声明:
    Event Change(StartValue As Long, EndValue As Long, NowValue As Long)
    Public Property Get Max() As Long
       Max = m_Max
    End Property
    Public Property Let Max(ByVal New_Max As Long)
       m_Max = New_Max
       Call DrawSlider
       PropertyChanged "Max"
    End PropertyPublic Property Get Min() As Long
       Min = m_Min
    End Property
    Public Property Let Min(ByVal New_Min As Long)
       m_Min = New_Min
       Call DrawSlider
       PropertyChanged "Min"
    End PropertyPublic Property Get NowValue() As Long
       NowValue = m_NowValue
    End PropertyPublic Property Let NowValue(ByVal New_NowValue As Long)
       m_NowValue = New_NowValue
       Call DrawSlider
       PropertyChanged "NowValue"
    End PropertyPrivate Sub Slider_MouseDown(Button As Integer, Shift As Integer, X As Single, Y As Single)
    If Not m_fSlide Then '未移动滑标
       m_PlaceHolder = Y '记录鼠标点击时位置
       m_SliderPos = Slider.Top '记录滑标的当前位置
       m_fSlide = True '开始移动
    End If
    End SubPrivate Sub Slider_MouseMove(Button As Integer, Shift As Integer, X As Single, Y As Single)
    Dim SliderTop As Integer
    Dim k As Integer
    If m_fSlide Then
       SliderTop = m_SliderPos + Int(Y - m_PlaceHolder) '调整滑标位置,等于滑标当前位置+鼠标按下点的移动间隔
       
       '限制移动范围
       If SliderTop < 0 Then SliderTop = 0
       If SliderTop > ScaleHeight - Slider.Height Then SliderTop = ScaleHeight - Slider.Height
       
       '保存滑标当前位置
       m_SliderPos = SliderTop
       '重新计算 StartValue 和 EndValue 以及 NowValue
       k = m_EndValue - m_StartValue + 1
       m_StartValue = SliderTop * m_Max / ScaleHeight + 1
       m_EndValue = m_StartValue + k - 1
       If m_EndValue > m_Max Then '超出范围
          m_EndValue = m_Max
          m_StartValue = m_Max - k - 1
       End If
       
       Call DrawSlider
       
       RaiseEvent Change(m_StartValue, m_EndValue, m_NowValue)
    End If
    End SubPrivate Sub Slider_MouseUp(Button As Integer, Shift As Integer, X As Single, Y As Single)
    On Error Resume Next
    m_fSlide = False '停止移动
    End Sub
    '为用户控件初始化属性
    Private Sub UserControl_InitProperties()
       m_Max = m_def_Max
       m_Min = m_def_Min
       m_NowValue = m_def_NowValue
       m_EndValue = m_def_EndValue
       m_StartValue = m_def_StartValue
    End SubPrivate Sub UserControl_MouseDown(Button As Integer, Shift As Integer, X As Single, Y As Single)
    Dim k As Integer
       If Y > Slider.Top + Slider.Height Then '点击的位置在滑动块下方
          If Y + Slider.Height <= ScaleHeight Then
             Slider.Top = Y
          Else
             Slider.Top = ScaleHeight - Slider.Height
          End If
       Else '上方
          Slider.Top = Y
       End If
       k = m_EndValue - m_StartValue + 1
       m_StartValue = Slider.Top * m_Max / ScaleHeight + 1
       m_EndValue = m_StartValue + k - 1
       If m_EndValue > m_Max Then '超出范围
          m_EndValue = m_Max
          m_StartValue = m_Max - k - 1
       End If
       
       Call DrawSlider
       RaiseEvent Change(m_StartValue, m_EndValue, m_NowValue)
    End Sub'从存贮器中加载属性值
    Private Sub UserControl_ReadProperties(PropBag As PropertyBag)
       m_Max = PropBag.ReadProperty("Max", m_def_Max)
       m_Min = PropBag.ReadProperty("Min", m_def_Min)
       m_NowValue = PropBag.ReadProperty("NowValue", m_def_NowValue)
       m_EndValue = PropBag.ReadProperty("EndValue", m_def_EndValue)
       m_StartValue = PropBag.ReadProperty("StartValue", m_def_StartValue)
    End Sub'将属性值写到存储器
    Private Sub UserControl_WriteProperties(PropBag As PropertyBag)
       Call PropBag.WriteProperty("Max", m_Max, m_def_Max)
       Call PropBag.WriteProperty("Min", m_Min, m_def_Min)
       Call PropBag.WriteProperty("NowValue", m_NowValue, m_def_NowValue)
    '   Call PropBag.WriteProperty("End", m_End, m_def_End)
       Call PropBag.WriteProperty("EndValue", m_EndValue, m_def_EndValue)
       Call PropBag.WriteProperty("StartValue", m_StartValue, m_def_StartValue)
    End Sub'重画控件
    Private Sub DrawSlider()
    If m_Max > 0 Then
       Slider.Visible = True
       Slider.Width = UserControl.ScaleWidth
       If m_EndValue > 0 And m_StartValue > 0 Then
          Slider.Height = (m_EndValue - m_StartValue + 1) * UserControl.ScaleHeight / m_Max
          Slider.Top = (m_StartValue - 1) * UserControl.ScaleHeight / m_Max '* (m_EndValue - m_StartValue)
       End If
    Else
       Slider.Visible = False
    End If
       
    End SubPublic Property Get EndValue() As Long
       EndValue = m_EndValue
    End PropertyPublic Property Let EndValue(ByVal New_EndValue As Long)
       m_EndValue = New_EndValue
       Call DrawSlider
       PropertyChanged "EndValue"
    End PropertyPublic Property Get StartValue() As Long
       StartValue = m_StartValue
    End PropertyPublic Property Let StartValue(ByVal New_StartValue As Long)
       m_StartValue = New_StartValue
       Call DrawSlider
       PropertyChanged "StartValue"
    End Property
      

  4.   

    wqb(啊喂) :
    我試了以後,再給分好嗎,謝謝了