Действительно ли возможно добавить ссылку на некоторый исходный код для включения в исходный файл в vb.net, winforms?

Я не знаю то, чем это называют так, я изо всех сил пытался найти ответ от Google, но у меня есть неопределенная память его с t'old дней.

Я разделил на подклассы (*, видят ниже), приблизительно 8 средств управления платформой, переопределенных некоторые свойства, и добавил некоторую функциональность в каждого. Изменения, которые я внес, идентичны в каждом случае. Если я вношу изменение, я должен пройти каждый класс и применить то же изменение там. Я надеялся, что может быть ключевое слово такой как <IncludeSourcefile "common.vb>, что я могу поместить в каждый класс.

Шанс?

(* примечание) я использую разделенный на подклассы термин, но я не знаю, является ли это корректной терминологией. Я также видел, что это использовало для обратных вызовов. Разделяется правильный термин на подклассы для использования?

5
задан Jules 26 January 2010 в 00:11
поделиться

5 ответов

Я серьезно сомневаюсь, что собирается работать для вас. Вы не можете использовать файл включения для замятия изменений в производных элементах управления. Вы обычно принимаете изменения в общий базовый класс, который вытекает из элемента управления, например, вытекает отдельные элементы управления из этого базового класса. Но это не собирается работать, если вы настраиваете 8 отдельных классов управления. Скопируйте и-вставку - это ваша лота.

1
ответ дан 15 December 2019 в 06:26
поделиться

Это может быть сумасшедшая идея, но ...

  1. Создайте файл Common.VB с нужным кодом.
  2. Создайте файлы частичных классов для каждого элемента управления, где вы добавите образец кода.
  3. Создайте пакетный файл, который копирует данные с вашего Common.VB в ваши частичные классы
  4. Создать шаг предварительного здания, который выполняет этот пакетный файл.

Если вам нужен код, скопированный на частичные классы перед компиляцией, вы всегда можете запустить файл пакет.

И это, конечно, предполагает, что VB.NET имеет концепцию частичных классов. И нет, я не пробовал это дома ... ;-D

1
ответ дан 15 December 2019 в 06:26
поделиться

Я помню, как где-то помню, что Microsoft привел к определенному решению дизайна (по крайней мере, в C #) не допустить, включая внешний исходный код таким образом.

было ощущение, что, в том случае, если в том случае, если исходные файлы могут быть полезны в C ++, он также может ввести сложность и уменьшить читаемость.

На языке OO обычно есть хорошие альтернативы, наиболее очевидны состав объектов и делегация.

Вот как я обработал эту ситуацию в прошлом:

class CommonCode
{
    public void HandlePaint(Control c, PaintEventArgs a)
    {
        // Do shared code
    }
    public void HandleResize(Control c)
    {
        // Do shared code
    }

}

class MyButton : Button
{
    private CommonCode m_common=null;

    public MyButton()
    {
        m_common=new CommnCode();        
    }
    protected override OnPaint(PaintEventArgs a)
    {
        m_common.HandlePaint(this,a);
    }

    protected override void OnResize(EventArgs e)
    {
        m_common.HandleResize(this);
    }

}

class MyTextbox :Textbox
{

    private CommonCode m_common=null;

    public MyTextbox()
    {
        m_common=new CommnCode();        
    }
    protected override OnPaint(PaintEventArgs a)
    {
        m_common.HandlePaint(this,a);
    }

    protected override void OnResize(EventArgs e)
    {
        m_common.HandleResize(this);
    }

}
1
ответ дан 15 December 2019 в 06:26
поделиться

Составьте ваши обычные классы в свою собственную DLL.

Затем установите ссылку на вашу DLL в Visual Studio, щелкнув правой кнопкой мыши на папку «Ссылки» в исследовательском исследовании.

Наконец, добавьте использование операторов к классам вашего проекта для пространства имен в вашей новой DLL.

0
ответ дан 15 December 2019 в 06:26
поделиться

Вы можете создать проект библиотеки классов (который вывод будет DLL) из Visual Studio:

Новый проект -> Библиотека класса

Вы можете поместить все свой код тогда Вы можете просто добавить ссылку на библиотеку классов в проект, который вы хотите его использовать, из (правой кнопкой мыши ссылки на исследование решения):

Ссылки -> Добавить ссылку -> Проекты -> MyClassLibrary

Способен находить MyCassLibrary на вкладке «Проекты», оба проекта должны быть в одном решении - в противном случае вы можете просто пойти «просматривать» и указать на саму DLL.

Затем в файле .vb необходимо использовать свои классы, вы можете сделать импорт MyClassLibrary:

// assuming the namespace is MyClassLibrary
imports MyClassLibrary

на этом этапе, вы можете просто использовать подклассы и элементы управления. Если вы пойдете MyClassLibrary. IntelliSense покажет вам все ваши классы.

0
ответ дан 15 December 2019 в 06:26
поделиться
Другие вопросы по тегам:

Похожие вопросы: