VB6图表绘制入门:折线图与柱状图实现教程

本文还有配套的精品资源,点击获取 menu-r.4af5f7ec.gif

简介:VB6利用Microsoft Chart Control控件轻松实现折线图和柱状图。这个项目适合初学者学习如何集成图形元素,理解数据可视化。通过添加和配置MSChart控件,设置图表类型及数据源,以及实现与数据库的交互,初学者可以掌握基本的图形绘制和数据绑定,提高编程技能。

1. VB6图形绘制基础

1.1 VB6中的图形绘制概述

VB6(Visual Basic 6.0)是微软公司推出的一款经典编程语言,尽管它已经是一个较为陈旧的工具,但在学习图形绘制的基础时,VB6仍然不失为一个很好的起点。VB6提供了基本的图形处理能力,使得开发者可以轻松地在其应用程序中实现简单的图形绘制。

1.2 理解VB6绘图原理

在VB6中,绘图工作主要通过Form的 Paint 事件来完成。当一个窗体需要重绘时,比如大小改变或者窗体重绘, Paint 事件就会被触发。开发者可以通过编写事件处理函数来响应这个事件,调用 Graphics 对象的方法进行绘图。

Private Sub Form_Paint()
    Dim g As Graphics
    Set g = Me.hDC ' 获取设备上下文句柄

    ' 在这里添加绘图代码
    g.FillRectangle(Brushes.Blue, 10, 10, 100, 100) ' 绘制一个蓝色方块

    ' 不要忘记释放 Graphics 对象
    Set g = Nothing
End Sub

1.3 基本图形绘制方法

Paint 事件中,可以使用VB6提供的各种绘图方法绘制基本图形。以下是一些基本操作的例子:

  • 线条绘制: g.DrawLine(Pens.Black, x1, y1, x2, y2)
  • 矩形绘制: g.DrawRectangle(Pens.Black, x, y, width, height)
  • 圆形绘制: g.DrawEllipse(Pens.Black, x, y, width, height)
  • 填充颜色: g.FillEllipse(Brushes.Blue, x, y, width, height)

通过组合不同的绘图方法,开发者可以在VB6应用程序中创建丰富的用户界面元素。下一章我们将进一步学习如何使用MSChart控件来绘制更为复杂的数据图表。

2. MSChart控件的添加与配置

2.1 MSChart控件的概述

2.1.1 MSChart控件的作用与优势

Microsoft Chart控件是一种强大的图表绘制组件,它允许开发者在VB6应用程序中快速创建丰富的图表来展示数据。它提供了多种图表类型,包括折线图、柱状图、饼图等,这些图表类型可以用来直观地展示数据趋势、比较数据集合或者分析数据分布情况。MSChart控件的优势主要体现在以下几个方面:

  • 用户界面友好 :MSChart控件为用户提供了丰富的交互功能,包括缩放、平移、数据点提示等,这些都大大提高了用户体验。
  • 数据绑定 :控件支持直接绑定数据源,简化了编程逻辑,并降低了数据处理的复杂性。
  • 高度定制 :开发者可以根据需要调整几乎每一个图表元素的属性,包括颜色、字体、线型等,从而达到符合特定需求的视觉效果。
  • 性能优秀 :MSChart控件在绘制大型数据集的图表时性能依然优秀,能够快速响应用户的交互操作。
2.1.2 如何在VB6中引入MSChart控件

要在VB6中添加MSChart控件,可以按照以下步骤操作:

  1. 打开VB6开发环境,点击工具箱中的“部件”按钮。
  2. 在“部件”对话框中,切换到“控件”标签页。
  3. 勾选“Microsoft Chart Control”,然后点击确定,控件就会添加到工具箱中。
  4. 在工具箱中选择MSChart控件,并将其拖放到表单上。

一旦添加,控件即可以被配置并开始使用。需要注意的是,MSChart控件仅适用于VB6,不适用于VB.NET。

2.2 MSChart控件的属性设置

2.2.1 图表类型的配置

MSChart控件支持多种类型的图表,每种图表类型适合展示不同的数据和信息。为了配置一个图表类型,我们需要访问 SeriesCollection ChartType 属性。以下是一个示例代码,演示如何设置图表类型为折线图:

With MSChart1
    ' 配置SeriesCollection
    .SeriesCollection.NewSeries
    .SeriesCollection(0).Name = "Data Series"
    .SeriesCollection(0).XValueMembers = "XValue"
    .SeriesCollection(0).YValueMembers = "YValue"
    ' 设置图表类型为折线图
    .ChartType = msChartTypeLine
End With

在这段代码中, .SeriesCollection 用于定义系列集合, .ChartType 属性用来设定图表类型。 msChartTypeLine 是MSChart定义的一种图表类型,表示折线图。

2.2.2 图表样式的定制

MSChart控件不仅允许开发者自定义图表类型,还提供了丰富的图表样式定制选项。以下是一些基本的样式定制方法:

With MSChart1
    ' 设置图表标题
    .ChartAreas(0).AxisX.Title = "X Axis Title"
    .ChartAreas(0).AxisY.Title = "Y Axis Title"
    ' 设置图表背景颜色
    .BackColor = &H00FFFFFF ' 设置为白色
    ' 开启图例显示
    .Legend.Visible = True
    ' 定制系列样式,例如将第一个系列的颜色改为红色
    .SeriesCollection(0).Color = &HFFFF0000
    .SeriesCollection(0).BorderWidth = 2
End With

2.3 MSChart控件的事件机制

2.3.1 事件驱动编程基础

事件驱动编程是MSChart控件的核心机制之一。开发者可以利用控件触发的事件来响应用户的交互,例如鼠标点击、图表刷新等。事件响应函数的编写通常遵循以下格式:

Private Sub MSChart1_Click()
    ' 事件处理代码
End Sub

在这里, MSChart1_Click 是事件处理程序的名称,其中 MSChart1 是控件的名称。

2.3.2 MSChart控件的常用事件

MSChart控件的常用事件包括 Click , MouseOver , SelectionChanged 等。下面是一些事件的具体使用方法:

Private Sub MSChart1_SelectionChanged(ByVal Series As Series)
    ' 当数据系列选择改变时触发此事件
    Dim selPoints As Points
    Set selPoints = Series.Points
    ' 可以对selPoints进行操作,如高亮显示选中的数据点等
End Sub

在这段代码中, SelectionChanged 事件用于响应数据系列的选择变化。通过操作 Series 参数,我们可以获取到被选中系列的相关信息,并对其执行定制化的操作。

3. 折线图和柱状图的创建方法

在数据可视化领域,折线图和柱状图是两种极为常见的图表类型,它们以直观的方式揭示了数据的趋势和对比。在本章节中,我们将探讨如何在VB6中创建这两种类型的图表,并对创建过程中的步骤和高级选项进行深入分析。

3.1 折线图的创建步骤

3.1.1 创建基础折线图

在VB6中创建基础的折线图,需要对MSChart控件进行初步的配置。以下是创建基础折线图的步骤:

  1. 在VB6的工具箱中拖拽一个MSChart控件到窗体上。
  2. 通过对象浏览器或属性窗口配置MSChart控件,设置 ChartType 属性为 mscChartLine ,这表明我们要创建的是折线图。
  3. 定义数据源,通常数据源是一个二维数组或数据集(Dataset),需要将数据源的值填充到图表中。可以使用 MSChart.SetData 方法来设置数据。
  4. 最后,调用 MSChart.Refresh 方法,让图表根据设置的数据源更新显示。

下面是一个简单的示例代码,展示了如何创建一个基础的折线图:

Private Sub Form_Load()
    ' 假设MSChart1是拖到窗体上的MSChart控件
    MSChart1.ChartType = mscChartLine
    Dim chartData(3, 3) As Variant
    ' 数据设置
    chartData(0, 0) = "Series1"
    chartData(0, 1) = "Series2"
    chartData(0, 2) = "Series3"
    chartData(0, 3) = "Series4"
    chartData(1, 0) = 10
    chartData(1, 1) = 30
    chartData(1, 2) = 20
    chartData(1, 3) = 40
    chartData(2, 0) = 25
    chartData(2, 1) = 33
    chartData(2, 2) = 12
    chartData(2, 3) = 22
    ' 将数据设置到MSChart控件中
    MSChart1.SetData mscDataRegionsSeriesNames, 0, chartData
    ' 更新图表
    MSChart1.Refresh
End Sub

在上述代码中,首先定义了一个二维数组 chartData 来存储折线图的数据。接着,通过 SetData 方法将数据应用到图表上,并通过 Refresh 方法更新图表显示。

3.1.2 高级选项设置与样式调整

创建了基础的折线图后,我们可能需要对其进行更细致的设置以满足特定的视觉需求。高级选项包括但不限于:图例的显示与位置、坐标轴的自定义、网格线的颜色和样式、颜色主题的选择等。

下面的代码展示如何添加图例,并设置坐标轴的标签与范围:

Private Sub Form_Load()
    ' 设置图表类型为折线图
    MSChart1.ChartType = mscChartLine
    ' 假设已经有数据填充在MSChart控件中
    ' 图例设置
    MSChart1.HasLegend = True ' 显示图例
    MSChart1.Legend.Position = mscLegendTop ' 图例位置在图表上方
    ' 坐标轴设置
    MSChart1.Axes(mscX).IntervalMarkLabelAlignment = mscLabelRight ' X轴标签靠右对齐
    MSChart1.Axes(mscX).Enabled = True ' 启用X轴
    MSChart1.Axes(mscX).Title.Text = "X轴标题" ' 设置X轴标题
    MSChart1.Axes(mscX).Minimum = 0 ' 设置X轴最小值
    MSChart1.Axes(mscX).Maximum = 100 ' 设置X轴最大值
    MSChart1.Axes(mscY).IntervalMarkLabelAlignment = mscLabelRight ' Y轴标签靠右对齐
    MSChart1.Axes(mscY).Enabled = True ' 启用Y轴
    MSChart1.Axes(mscY).Title.Text = "Y轴标题" ' 设置Y轴标题
    MSChart1.Axes(mscY).Minimum = 0 ' 设置Y轴最小值
    MSChart1.Axes(mscY).Maximum = 100 ' 设置Y轴最大值
    ' 更新图表显示
    MSChart1.Refresh
End Sub

在上述代码中, HasLegend 属性用于控制图例的显示, Legend.Position 定义了图例的位置。此外,通过 Axes 对象可以访问到X轴和Y轴,并对其进行详细配置,如设置标签、标题、显示范围等。

3.2 柱状图的创建步骤

3.2.1 创建基础柱状图

创建基础的柱状图与折线图的过程类似,主要的区别在于图表类型的配置。以下是创建基础柱状图的步骤:

  1. 同样拖拽MSChart控件到窗体,并通过属性窗口设置 ChartType mscChartColumn
  2. 准备数据源并使用 MSChart.SetData 方法将数据应用到图表中。
  3. 最后调用 MSChart.Refresh 方法更新图表显示。

下面的代码展示了一个基础柱状图的创建过程:

Private Sub Form_Load()
    ' 设置图表类型为柱状图
    MSChart1.ChartType = mscChartColumn
    Dim chartData(3, 3) As Variant
    ' 数据设置
    chartData(0, 0) = "Category1"
    chartData(0, 1) = "Category2"
    chartData(0, 2) = "Category3"
    chartData(0, 3) = "Category4"
    chartData(1, 0) = 10
    chartData(1, 1) = 20
    chartData(1, 2) = 30
    chartData(1, 3) = 40
    chartData(2, 0) = 15
    chartData(2, 1) = 25
    chartData(2, 2) = 35
    chartData(2, 3) = 45
    ' 将数据设置到MSChart控件中
    MSChart1.SetData mscDataRegionsSeriesNames, 0, chartData
    ' 更新图表显示
    MSChart1.Refresh
End Sub

在该代码中,通过更改 ChartType 属性为 mscChartColumn 并相应地设置数据,我们创建了一个基础的柱状图。

3.2.2 柱状图的分类与堆叠特性

除了基础柱状图,MSChart控件还支持各种不同风格的柱状图,包括分组柱状图(grouped column charts)、堆叠柱状图(stacked column charts)等。通过修改数据源的结构和配置特定的属性,可以创建不同视觉效果的柱状图。

柱状图的分类和堆叠特性的实现主要依赖于数据源的组织形式和MSChart控件提供的属性。例如,要创建堆叠柱状图,需要将数据组织成多个系列,每个系列对应一个“层”,并且将MSChart控件的 Stacked 属性设置为True。

Private Sub Form_Load()
    ' 设置图表类型为堆叠柱状图
    MSChart1.ChartType = mscChartColumn
    MSChart1.Stacked = True ' 启用堆叠特性
    Dim chartData(4, 3) As Variant
    ' 数据设置
    chartData(0, 0) = "Category1"
    chartData(0, 1) = "Category2"
    chartData(0, 2) = "Category3"
    chartData(1, 0) = 10 ' Series1
    chartData(2, 0) = 15 ' Series1
    chartData(1, 1) = 20 ' Series2
    chartData(2, 1) = 25 ' Series2
    chartData(1, 2) = 30 ' Series3
    chartData(2, 2) = 35 ' Series3
    ' 将数据设置到MSChart控件中
    MSChart1.SetData mscDataRegionsSeriesNames, 0, chartData
    ' 更新图表显示
    MSChart1.Refresh
End Sub

在上述代码中,通过设置 Stacked 属性为True,并合理组织数据源,我们创建了一个堆叠柱状图。

3.3 图表类型的比较与选择

3.3.1 不同图表类型的适用场景

在数据可视化领域,不同类型的图表适用于展示不同类型的数据和信息。以下是折线图和柱状图的适用场景:

  • 折线图 :适用于展示数据随时间变化的趋势,如股票价格波动、气温变化等。
  • 柱状图 :适用于展示不同类别的数据对比,如各产品销售额对比、网站流量统计等。

3.3.2 如何根据数据特性选择图表类型

选择图表类型应当考虑数据的特性、展示的目标以及观众的理解能力。对于展示时间序列数据,折线图通常是首选。当需要强调数量比较时,柱状图则更为合适。在一些复杂场景下,还可以将不同类型的图表结合起来使用,例如使用折线图和柱状图组合,以提供更丰富的信息。

flowchart LR
    A[数据特性分析] --> B{图表类型选择}
    B -->|时间序列数据| C[折线图]
    B -->|类别数据对比| D[柱状图]
    B -->|多维度对比| E[组合图表]
    E --> F[折线图+柱状图]

在实际应用中,必须根据具体的数据和目标来选择合适的图表类型。同时,图表的设计也应该简洁明了,避免过度装饰,以免影响数据的表达。

4. 数据源的设置与数据库的交互

在制作图表时,数据源的设置是关键的一步,它决定了图表展示的数据从何而来以及如何更新。了解如何设置数据源并实现与数据库的交互,可以大大提高图表的动态性和实用性。接下来我们将详细探讨数据源的设置技巧,数据库交互技术以及数据的动态绑定与刷新。

4.1 数据源的设置技巧

数据源是图表显示数据的根源。在VB6中,数据源可以通过多种方式设置,包括数组、文件、数据库等。正确地设置数据源,可以帮助我们高效地创建图表,并且方便后续的数据更新。

4.1.1 数据绑定基础

数据绑定是将数据源中的数据与图表控件连接的过程。在VB6中,可以通过编程方式或可视化方式来完成数据绑定。编程方式通常更加灵活,而可视化方式则更为直观。

在编程方式中,MSChart控件提供了丰富的属性和方法用于数据绑定,例如 ChartAreas 集合中的 Series 对象,可以通过 Points 属性来添加数据点:

' VB6代码示例
Dim series1 As Series
Set series1 = Chart1.ChartAreas(0).SeriesCollection(0)

Dim point1 As New DataPoint
point1.XValue = 1
point1.YValues = 100
series1.Points.Add point1

在上述代码中,我们首先获取了图表中第一个区域的系列对象,然后创建了一个新的数据点,并将该数据点添加到系列中。通过这种方式,可以动态地构建图表的数据源。

4.1.2 不同数据源类型的适应与选择

VB6支持多种数据源类型,理解它们的特点和适用场景可以帮助我们做出合适的选择:

  • 数组 :适合于静态数据,可以快速地一次性绑定到图表。
  • 数据库 :适合于需要动态从数据库中提取数据的场景。
  • 文件 :适合于数据存储在外部文件中,如CSV格式,便于数据交换和存储。

选择数据源类型时,需要考虑数据的规模、更新频率和应用的性能要求。例如,对于大规模和实时更新的数据,可能需要考虑使用数据库或流式读取文件。

4.2 数据库交互技术

为了使图表展示的数据能够动态变化,我们需要掌握如何使用VB6中的ActiveX数据对象(ADO)连接到数据库,并实现数据的查询与图表的更新。

4.2.1 使用ADO连接数据库

ADO(ActiveX Data Objects)是一种易于使用的数据库访问方法,允许我们以编程方式从多种数据源中检索数据。以下是连接到数据库的基本步骤:

' VB6代码示例
Dim conn As New ADODB.Connection
Dim rs As New ADODB.Recordset

Dim dbPath As String
dbPath = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=你的数据库路径"

conn.Open dbPath
rs.Open "SELECT * FROM 你的数据表名", conn

在上述代码中,首先创建了 ADODB.Connection ADODB.Recordset 对象。然后设置了数据库的连接字符串并打开连接,最后通过 Recordset 对象执行SQL查询语句,获取数据表内容。

4.2.2 数据的查询与图表更新

一旦建立连接并获取了数据,我们就可以将数据绑定到MSChart控件中。对于动态更新,通常涉及到定时查询数据库并刷新图表数据的逻辑:

Private Sub UpdateChart()

    ' 清除旧数据
    Chart1.SeriesCollection(0).Points.Clear
    ' 填充数据
    While Not rs.EOF
        ' 这里需要根据实际表的字段来绑定数据
        Dim point1 As New DataPoint
        point1.XValue = rs.Fields("字段1")
        point1.YValues = rs.Fields("字段2")
        Chart1.SeriesCollection(0).Points.Add point1
        rs.MoveNext
    Wend

    ' 关闭记录集并重新连接
    rs.Close
    rs.Open "SELECT * FROM 你的数据表名", conn

End Sub

上述代码展示了如何遍历记录集中的数据并将其添加到图表中,同时也演示了如何定期刷新数据来实现动态更新。

4.3 数据的动态绑定与刷新

数据源绑定到图表控件之后,若数据源发生变动,图表需要相应地更新显示。这对于保持图表数据的时效性和准确性至关重要。

4.3.1 实现数据动态绑定的策略

动态绑定策略通常依赖于定时执行数据更新操作。这可以通过在VB6中使用 Timer 控件或设置定时器实现。以下是一个使用VB6内部计时器动态更新图表数据的示例:

Private Sub Form_Load()
    ' 设置定时器
    Timer1.Interval = 10000  ' 每10秒触发一次
    Timer1.Enabled = True
End Sub

Private Sub Timer1_Timer()
    UpdateChart
End Sub

在上述代码中,我们设置了定时器每隔10秒钟执行一次 UpdateChart 过程,这个过程根据数据库中的最新数据更新图表。

4.3.2 确保数据准确性的刷新机制

为了确保数据的准确性,必须确保数据更新过程中的数据一致性和完整性。除了定期更新外,还应处理可能出现的异常和错误,确保图表显示的是正确的数据。

在更新数据时,需要考虑到:

  • 事务处理 :在数据源更新过程中,可以使用事务来确保数据的一致性。如果更新过程中出现错误,事务可以回滚到更新前的状态。
  • 错误处理 :增加错误处理逻辑,捕获可能的异常,例如网络断开、数据库访问错误等。
  • 同步机制 :如果图表更新涉及到多线程,需要确保线程之间的同步,避免数据冲突。

在VB6中,可以通过 On Error 语句来处理运行时错误,并采取相应的错误处理措施,比如恢复到前一状态或通知用户错误信息。

到此为止,本章介绍了如何设置数据源以及如何与数据库进行交互,确保了数据的动态绑定与图表的实时更新。接下来的章节将进一步探讨如何通过事件处理技术使图表的更新更加智能和人性化。

5. 图表动态更新的事件处理

5.1 事件驱动的动态更新机制

5.1.1 理解事件驱动更新的意义

事件驱动更新是指根据用户的交互行为或者系统内部状态的变化来更新图表数据或显示。这种方式可以实时反映数据变动,给用户带来更生动的体验。在VB6结合MSChart控件的环境下,可以通过编程捕捉各种事件,然后利用这些事件来驱动图表数据的更新。

5.1.2 实现图表数据动态更新的框架

下面是一个简单的事件驱动更新框架的示例代码,用于更新图表数据:

Private Sub Form_Load()
    ' 初始化图表控件和其他UI元素
    InitializeChart
    InitializeData
    UpdateChart
End Sub

Private Sub UpdateChart()
    ' 更新图表数据的代码
    ' 示例:添加新的数据点到数据系列
    Chart1.SeriesCollection(1).Points.AddXY x, y
End Sub

Private Sub Chart1_DataUpdated(sender As Object, e As EventArgs)
    ' 当图表数据更新完成后触发的事件
    ' 可以在此处执行如动画效果、提示信息等操作
End Sub

在此框架中, InitializeChart 方法用于初始化MSChart控件, InitializeData 方法用于准备初始数据, UpdateChart 方法用于更新图表数据。

5.2 用户交互事件的响应

5.2.1 鼠标事件的处理与应用

当用户与图表进行交互,比如点击或鼠标悬停时,可以触发一系列事件,这在用户体验设计中非常重要。以下是如何处理鼠标点击事件的示例:

Private Sub Chart1_Click(sender As Object, e As EventArgs)
    ' 处理图表的点击事件
    ' e 参数可能包含额外信息,例如点击的位置、图例信息等

    Dim hit As HitTestInfo = Chart1.HitTest(e.X, e.Y)
    If hit.ObjectNearestX Is Chart1.ChartAreas(0).AxisX THEN
        ' 处理X轴上的点击事件
        MsgBox "Clicked on X-Axis"
    ElseIf hit.ObjectNearestX Is Chart1.ChartAreas(0).AxisY THEN
        ' 处理Y轴上的点击事件
        MsgBox "Clicked on Y-Axis"
    End If
End Sub

5.2.2 键盘事件的处理与应用

键盘事件通常用于响应用户的按键操作,为图表提供快速导航或者切换视图的功能。下面是一个如何处理键盘事件来响应按键操作的示例:

Private Sub Form_KeyDown(sender As Object, e As KeyEventArgs)
    ' 处理窗体的按键事件
    Select Case e.KeyCode
        Case Keys.Up
            ' 上键事件处理逻辑,例如放大图表等
        Case Keys.Down
            ' 下键事件处理逻辑,例如缩小图表等
        ' 可以继续添加更多的键值对应操作
    End Select
End Sub

5.3 图表数据变更的处理

5.3.1 数据变更事件的捕获

图表的动态更新往往需要在数据发生变化时即时反映,这可以通过数据变更事件来实现。下面是如何监听数据源变化并响应的示例代码:

Private Sub DataSeries1_DataPointAdded(sender As Object, e As DataPointEventArgs)
    ' 当数据系列中添加新的数据点时触发的事件
    ' 可以在这里重新绘制图表或者进行其他数据处理

    ' 重新计算图表相关指标或逻辑
    CalculateAdditionalMetrics()
    UpdateChart()
End Sub

5.3.2 数据变更后图表的重新绘制

每次数据变更后,图表需要根据新的数据进行更新。接下来是一个基于数据变更后更新图表的示例:

Private Sub UpdateChartAfterDataChange()
    ' 更新图表,以反映数据变化后的结果
    ' 此处可以根据具体的数据更新策略进行调整
    ' 例如重新计算趋势线、移动平均线等

    ' 清除旧数据点
    Chart1.SeriesCollection(1).Points.Clear()

    ' 添加新的数据点
    Dim i As Integer
    For i = 1 To 10
        Dim x As Single = i
        Dim y As Single = Math.Sin(x)
        Chart1.SeriesCollection(1).Points.AddXY(x, y)
    Next i

    ' 通知图表重新绘制
    Chart1.Invalidate()
End Sub

在此代码中,我们首先清除旧的数据点,然后添加新的数据点,并最终调用 Invalidate 方法来通知图表重绘。

请注意,在实际应用中,每个图表控件和事件响应的实现可能会有所不同,这需要根据具体的业务逻辑和用户需求来调整代码。同时,为了避免频繁的更新导致性能问题,应谨慎处理数据变更事件,并使用适当的方法来最小化不必要的重绘。

本文还有配套的精品资源,点击获取 menu-r.4af5f7ec.gif

简介:VB6利用Microsoft Chart Control控件轻松实现折线图和柱状图。这个项目适合初学者学习如何集成图形元素,理解数据可视化。通过添加和配置MSChart控件,设置图表类型及数据源,以及实现与数据库的交互,初学者可以掌握基本的图形绘制和数据绑定,提高编程技能。

本文还有配套的精品资源,点击获取 menu-r.4af5f7ec.gif

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值