Итак, у меня был Line Control на форме в версии VB6, однако преобразование сделало файл на нем отдельно. Скомпилированный вывод работает, но он поставляется с предупреждением, которое я хочу удалить для поддержки 4.6+, если бы удалить Miscorsoft.VisualBasic.Compatibility, чтобы я был в порядке, не ссылаясь на него.У меня есть проект, преобразованный из VB6 в VB.Net, который использует .NET 4.5.2 с BaseControlArray Issue
Option Strict Off
Option Explicit On
Imports System.Windows.Forms
Imports System.ComponentModel
Imports Microsoft.VisualBasic.Compatibility.VB6
Imports Microsoft.VisualBasic.PowerPacks
<ProvideProperty("Index", GetType(LineShape))> Friend Class LineShapeArray
Inherits BaseControlArray
Implements IExtenderProvider
Public Event [Click] As EventHandler
Public Sub New()
MyBase.New()
End Sub
Public Sub New(ByVal Container As IContainer)
MyBase.New(Container)
End Sub
Public Function CanExtend(ByVal Target As Object) As Boolean Implements IExtenderProvider.CanExtend
If TypeOf Target Is LineShape Then
Return BaseCanExtend(Target)
End If
Return 0
End Function
Public Function GetIndex(ByVal o As LineShape) As Short
Return BaseGetIndex(o)
End Function
Public Sub SetIndex(ByVal o As LineShape, ByVal Index As Short)
BaseSetIndex(o, Index)
End Sub
Public Function ShouldSerializeIndex(ByVal o As LineShape) As Boolean
Return BaseShouldSerializeIndex(o)
End Function
Public Sub ResetIndex(ByVal o As LineShape)
BaseResetIndex(o)
End Sub
Public Shadows Sub Load(ByVal Index As Short)
MyBase.Load(Index)
CType(Item(0).Parent, ShapeContainer).Shapes.Add(Item(Index))
End Sub
Public Shadows Sub Unload(ByVal Index As Short)
CType(Item(0).Parent, ShapeContainer).Shapes.Remove(Item(Index))
MyBase.Unload(Index)
End Sub
Public Default ReadOnly Property Item(ByVal Index As Short) As LineShape
Get
Item = CType(BaseGetItem(Index), LineShape)
End Get
End Property
Protected Overrides Sub HookUpControlEvents(ByVal o As Object)
Dim ctl As LineShape
ctl = CType(o, LineShape)
If Not IsNothing(ClickEvent) Then
AddHandler ctl.Click, ClickEvent
End If
End Sub
Protected Overrides Function GetControlInstanceType() As System.Type
Return GetType(LineShape)
End Function
End Class
И Предупреждение:
warning BC40000: 'BaseControlArray' is obsolete: 'Microsoft.VisualBasic.Compatibility.* classes are obsolete and supported within 32 bit processes only. http://go.microsoft.com/fwlink/?linkid=160862'.
И ссылка на предупреждения на самом деле не быть полезным при всех фиксируя это предупреждение.
Я закончил тем, что делал это в случае краски формы, которая использует строки после ответа на вопрос ниже, что я отметил:
Private Sub Form2_Paint(sender As Object, e As PaintEventArgs) Handles MyBase.Paint
e.Graphics.DrawLine(Pens.Gray, 0, 151, Me.Width, 151)
e.Graphics.DrawLine(Pens.White, 0, 152, Me.Width, 152)
End Sub
y1
и y2
значения в DrawLine
могут быть заменены на высоту формы это разыскивается. То же самое для цвета Pens
.
Вопросы, требующие помощи по отладке («почему этот код не работает?») Должны включать в себя желаемое поведение, конкретную проблему или ошибку и кратчайший код, необходимый для воспроизведения в самом вопросе. Вопросы без четкого описания проблемы не полезны другим читателям. См. [Как создать минимальный, завершенный и проверяемый пример] (http://stackoverflow.com/help/mcve). Также бессмысленно говорить * он поставляется с предупреждением *, не показывая нам код и точно, что * предупреждение * он производит. –
Отредактировано сейчас с данными всего файла. – PSXGamerPro1