请保持论坛的秩序,不要发散分贴!对于对象型的变量,要使用 Set 语句设置其属性,如下所示:Set Control.DataSource = ADODC1MSDN中提到: Data 控件和 RemoteData 控件,可以用做数据源,但不能在运行时将另一个控件或对象的 DataSource 属性设置为这两个控件之一。 要将 Data 控件或 RemoteData 控件作为一个数据源使用,只能在设计时设置绑定控件的 DataSource 属性。因此,要完成你的功能就必须使用ADODC控件,与此相关的问题是,msFlexGrid不能绑定到ADODC,这又决定了你的控件中网格无法使用msFlexGrid,可以用MSHFlexGrid来替代。新建一个UserControl,填加一个MSHFlexGrid,并把下列代码拷贝到控件代码窗口中: Option ExplicitPrivate Sub UserControl_Resize() grd.Move 0, 0, UserControl.Width, UserControl.Height End SubPublic Property Get DataSource() As Variant Set DataSource = grd.DataSource End PropertyPublic Property Set DataSource(ByVal vNewValue As Variant) Set grd.DataSource = vNewValue End Property新建一个窗体,填加前面建立的控件和一个ADODC,以及一个按钮。 在按钮中用Set给DataSource属性赋值。Private Sub Command1_Click() Set UserControl1.DataSource = Adodc1 End Sub设置好ADODC的各项属性后,运行程序,点击按钮就可以见到控件已通过DataSource属性绑定到了ADODC。
Data 控件和 RemoteData 控件,可以用做数据源,但不能在运行时将另一个控件或对象的 DataSource 属性设置为这两个控件之一。
要将 Data 控件或 RemoteData 控件作为一个数据源使用,只能在设计时设置绑定控件的 DataSource 属性。因此,要完成你的功能就必须使用ADODC控件,与此相关的问题是,msFlexGrid不能绑定到ADODC,这又决定了你的控件中网格无法使用msFlexGrid,可以用MSHFlexGrid来替代。新建一个UserControl,填加一个MSHFlexGrid,并把下列代码拷贝到控件代码窗口中:
Option ExplicitPrivate Sub UserControl_Resize()
grd.Move 0, 0, UserControl.Width, UserControl.Height
End SubPublic Property Get DataSource() As Variant
Set DataSource = grd.DataSource
End PropertyPublic Property Set DataSource(ByVal vNewValue As Variant)
Set grd.DataSource = vNewValue
End Property新建一个窗体,填加前面建立的控件和一个ADODC,以及一个按钮。
在按钮中用Set给DataSource属性赋值。Private Sub Command1_Click()
Set UserControl1.DataSource = Adodc1
End Sub设置好ADODC的各项属性后,运行程序,点击按钮就可以见到控件已通过DataSource属性绑定到了ADODC。
[email protected]
要做能在设计时帮定数据源的控件,比较麻烦,需要枚举可用的绑定,判断那个是当前数据源,然后保存(Writeproperty)该数据源名,在Readproperty中,枚举,判断那个名与保存的名同,再set datasource
跟贴的请到:
自制表格控件的问题
http://www.csdn.net/expert/topic/898/898553.xml?temp=.8043329
谢谢大家的支持!
to : foolishtiger(冬蛩) ( ) 信誉:101
您说的不全面我有个例子就绑定datasouse到listbox.所以-error!
to : IsMe() 您说得对但不详细!您提到的我都用到了!望有空的时候帮忙研究一下!!thank you
跟贴的请到:
自制表格控件的问题(100分)
http://www.csdn.net/expert/topic/898/898553.xml?temp=.8043329
签名者给分!(因为虽然您没回答问题但您的签到使我的贴子提前了)
感谢您的帮助!!!