Vb.net 我是否需要创建一个新对象来更改DataGridView用户表单上的字体样式?

Vb.net 我是否需要创建一个新对象来更改DataGridView用户表单上的字体样式?,vb.net,Vb.net,我已经使用VBA两年多了,但最近开始学习VB.NET。有比我预期的更多的差异,包括这一行仅用于在我的DataGridView的第一行中使字体加粗: DataGridView1.Rows.Item(0).DefaultCellStyle.Font = New Font(DataGridView1.Font, FontStyle.Bold) 在VBA中,如果要做一些大胆的事情,它会是这样的 Range("A1").fontstyle.bold = True 我的问题是在那行VB代码中实际发生了什

我已经使用VBA两年多了,但最近开始学习VB.NET。有比我预期的更多的差异,包括这一行仅用于在我的DataGridView的第一行中使字体加粗:

DataGridView1.Rows.Item(0).DefaultCellStyle.Font = New Font(DataGridView1.Font, FontStyle.Bold)
在VBA中,如果要做一些大胆的事情,它会是这样的

Range("A1").fontstyle.bold = True

我的问题是在那行VB代码中实际发生了什么。构造新对象只是为了使用“Font”类中的属性,该类是粗体的枚举吗?我从来没有见过这样的东西。

VB.Net是一种面向对象的编程语言,虽然它的语法类似于VBA,可以帮助您学习它,但它是一种非常不同的语言

字体是System.Drawing命名空间中的对象(类)

您提供的线路具有以下功能:

  • 实例化字体类型的新对象(类)。它通过一个类构造函数方法来实现这一点。使用的构造函数方法将FontStyle设置为粗体。更具体地说
  • 将DataGridView DefaultCellStyle.Font属性设置为新字体 这里的要点是DataGridView上的Font属性需要Font类型的对象(类)。代码将该属性设置为新对象

    要回答您的问题“我是否需要创建一个新对象来更改DataGridView用户表单上的字体样式?”答案是肯定的

    Font类的粗体属性是只读的。它有一个Get,但没有Set

    这意味着,不幸的是,你不能简单地做到这一点

    DataGridView1.Rows.Item(0).DefaultCellStyle.Font.Bold = True
    

    您必须将属性设置为新字体。

    您可以通过IDE设计器将其加粗。在加载表单之前,我不会添加行……但我更想了解这行代码中发生了什么/为什么需要构造新对象您不能更改字体样式。要做到这一点,您应该使用给定的字体创建一个新字体并设置它的新样式。vba的OO要少得多(如果有的话,是基于1998年的技术);即使你是通过IDE完成的,它也必须完成……这只是VS在表单的设计器代码中为你完成的