m.r.m.40 Ответов: 1

C# windows forms и пользовательские элементы управления наследование от VB forms и пользовательских элементов управления.


Привет,

У меня есть некоторые VB windows forms и пользовательские элементы управления, которые они наследуют от некоторых базовых классов, таких как BaseUserControl и BaseForm, каждое поведение, которое я хочу, чтобы они имели, я просто добавлю его в базовые классы, вот проблема, один проект внутри моего решения написан на C#, и формы и пользовательские элементы управления этого проекта они также наследуют от этих базовых классов VB, но функциональные возможности, которые я добавляю в базовые классы, не будут добавлены в классы C#.,

Это мой BaseUserControl,
Public Class BaseUserControl
    Inherits System.Windows.Forms.UserControl



    Protected Overrides Sub InitLayout()
        MyBase.InitLayout()
        If (Not handlerAdded) Then tryaddinghandler()
        TakeMenuEntranceDate()
    End Sub

End Class


Это один из моих пользовательских элементов управления,
Public Class AveHesab1
    Inherits Acc.WinUI.Common.BaseUserControl
'...
End Class


Пока все идет хорошо, и нет никаких проблем.

Вот в чем проблема,
public class frmMoshakhasatPersonel : Acc.WinUI.Common.BaseUserControl
//...
End Class


Функции, которые я добавляю в BaseUserControl добавляются в все пользовательские элементы управления VB, которые наследуют от него, но нет в C# пользовательские элементы управления Вам поведение вставлен в BaseUserControl.

Любая помощь и идея решить эту проблему приветствуются,
Спасибо,

Что я уже пробовал:

Я все еще работаю над этим, но пока не нашел решения.

1 Ответов

Рейтинг:
2

OriginalGriff

Они действительно получают наследство, но сначала вам нужно перестроить проект VB, иначе код C# не сможет "увидеть" изменения.
Зависимость C# зависит от DLL - файла, на который он ссылается, а не от исходного кода проекта, создающего DLL, - так что вы можете продолжать работать над проектом, в то время как другие ссылаются на вашу версию выпуска без каких-либо проблем.
Просто создайте проект VB, а затем проверьте C# - если вы не создаете отладочную версию и код C# не ссылается на библиотеку DLL выпуска, он увидит ее после этого.