Recomendação de atualização: Resolver propriedades padrão sem parâmetros
No Visual Basic 6.0, muitos objetos expõem propriedades padrão, as quais podem ser omitidas como um atalho de programação.Por exemplo, TextBox tem uma propriedade padrão de Text, então em vez de escrever:
MsgBox Form1.Text1.Text
você usar o atalho:
MsgBox Form1.Text1
A propriedade padrão é resolvida quando o código é compilado.Além disso, você também pode usar propriedades padrão com objetos de ligação tardia, como no exemplo a seguir:
Dim obj As Object
Set obj = Form1.Text1
MsgBox obj
No atrasado-limite exemplo, a propriedade padrão é resolvida em time de execução e o MsgBox Exibe o valor da propriedade padrão das TextBox sistema autônomo Text1.
Visual Basic 2008 não oferece suporte a propriedades padrão sem parâmetros e conseqüentemente não permite esse atalho de programação. Quando seu projeto é atualizado, Visual Basic 2008 resolve as propriedades padrão sem parâmetros, mas usos de ligação tardia que dependam do resolução do time de execução não podem ser resolvidos automaticamente. Nesses casos, você mesmo terá que alterar.Uma complicação adicional é que muitas bibliotecas implementar propriedades padrão usando uma propriedade chamada _Default. _Default atua sistema autônomo um proxy, passando chamadas para a propriedade padrão real. Portanto, quando seu projeto é atualizado, algumas propriedades padrão serão resolvidas para _Default. O código ainda funcionará como de costume, mas será menos entendível que código escrito explicitamente usando a propriedade real.Por esses motivos, tente evitar o uso de propriedades padrão sem-parâmetros em seu código Visual Basic 6.0.Em vez de escrever:
Dim obj As Object
Set obj = Me.Text1
'BAD: Relying on default property
MsgBox obj
'BAD: Relying on default property
MsgBox Me.Text1
use:
Dim obj As TextBox
Set obj = Me.Text1
'GOOD: Default property is resolved
MsgBox obj.Text
'GOOD: Default property is resolved
MsgBox Me.Text1.Text
Enquanto propriedades padrão sem parâmetros não são suportadas em Visual Basic 2008, há suporte para propriedades padrão com parâmetros. Para entender a diferença entre os dois tipos, considere que propriedades padrão parametrizadas sempre possuem um índice.Um exemplo é a propriedade padrão do ADO recordset: the Fields coleção. O código:
Dim rs As ADODB.Recordset
rs("CompanyName") = "SomeCompany"
rs!CompanyName = "SomeCompany"
é realmente um atalho para:
Dim rs As ADODB.Recordset
rs.Fields("CompanyName").Value = "SomeCompany"
rs.Fields!CompanyName.Value = "SomeCompany"
Nesse caso, a Fields propriedade é parametrizada e então o uso é válido em Visual Basic 2008; No entanto, a propriedade padrão das Fields propriedade, Value, is sem parâmetros, portanto, a corrigir o uso em Visual Basic 2008 é:
Dim rs As ADODB.Recordset
rs("CompanyName").Value = "SomeCompany"
rs!CompanyName.Value = "SomeCompany"
Este exemplo e a maioria das outras propriedades padrão são resolvidos para você quando o projeto for atualizado, portanto resolvê-los em Visual Basic 6.0 é simplesmente uma boa prática de programação.No entanto, você deve evitar usar propriedades padrão com o Object e Variant tipos de dados, sistema autônomo eles não podem ser resolvidos e você terá de corrigir o código no projeto atualizado.