Я создал два настраиваемых элемента управления. На основе функций любой из них будет выбран и использован в приложении C#. Я загрузил нужный элемент управления, но как я могу использовать там функции. Например, есть функция public Control моего управления LoadXML(). Оба элемента управления содержат эту функцию. Только один элемент управления будет загружен за один раз.Добавление пользовательского контроля динамически в приложение C#
ответ
Создайте экземпляр своего элемента управления, затем добавьте его в форму, после чего вы можете вызвать его общедоступные методы.
TestControl myTestControl = new TestControl();
this.Controls.Add(myTestControl);
myTestControl.LoadXML();
При загрузке управления через DLL, попробуйте это вызвать метод:
// Use the file name to load the assembly into the current
// application domain.
Assembly a = Assembly.Load("example");
// Get the type to use.
Type myType = a.GetType("Example");
// Get the method to call.
MethodInfo myMethod = myType.GetMethod("MethodA");
// Create an instance.
object obj = Activator.CreateInstance(myType);
// Execute the method.
myMethod.Invoke(obj, null);
myassembly = Assembly.LoadFrom (Application.StartupPath + "\\ PDF" + "\\ x86" + "\\ PDFView" + ".dll"); } если (MyAssembly! = NULL) { Тип т = myassembly.GetType ("PDFView.PDFViewer"); cc = (управление) Activator.CreateInstance (t); this.Controls.Add (cc); cc.Dock = DockStyle.Bottom; cc.Show(); – abdul
Я загружаю из .dll обоих элементов управления. Приложение определит время выполнения, которое будет загружено .dll. – abdul
cc = (Control) Activator.CreateInstance (t); Здесь применяется к вашему конкретному типу управления, а не Control – Habib
Если я понял вас вопрос правильно, вы должны создать интерфейс и добавить функции LoadXML()
. Внедрите интерфейс в свои пользовательские элементы управления. Теперь вы можете создать объект интерфейса и инициализировать его с помощью требуемого элемента управления.
interface MyInterface
{
void LoadXML();
}
В вашем пользовательском элементе управления, реализации MyInterface
public class UserControl1 : UserControl, MyInterface
{
public void LoadXML()
{
... //do what you want
}
}
То же самое для UserControl2
Теперь загрузите нужный пользовательский элемент управления в объекте интерфейса и вызвать LoadXML()
,
class Class
{
MyInterface control;
public Class()
{
if (condition == true)
control = new UserControl1();
else
control = new UserControl2();
control.LoadXML();
}
}
Надеюсь, это поможет ,
- 1. Добавление пользовательского контроля динамически через XAML
- 2. Динамическое добавление пользовательского контроля в C# asp.net
- 3. События пользовательского контроля в C#
- 4. Как определить тип динамически загруженного пользовательского контроля?
- 5. Добавление пользовательского файла конфигурации в приложение C#
- 6. Добавление пользовательского контроля при нажатии кнопки
- 7. Добавление контроля содержимого генерирует исключение динамически
- 8. Добавление элементов управления для контроля таблицы динамически
- 9. C# WinForms, добавление пользовательского контроля Динамически во время выполнения и элементов управления невидимы?
- 10. Ошибка отображения пользовательского контроля в конструкторе C#
- 11. Форма пользовательского контроля пользователя
- 12. Добавление пользовательского контроля/страницы в Windows xaml программно в WPF
- 13. События пользовательского контроля
- 14. Динамическое добавление контроля пользователя
- 15. Пользовательские функции пользовательского контроля
- 16. Gradientfill для пользовательского контроля формы C++
- 17. Внешний вид пользовательского контроля
- 18. Создание пользовательского контроля WPF.?
- 19. привязка фреймворка пользовательского контроля
- 20. Предоставление свойств пользовательского контроля
- 21. Фокус для пользовательского контроля
- 22. Событие клиента пользовательского контроля
- 23. Пользовательские методы пользовательского контроля?
- 24. Шаблоны пользовательского контроля
- 25. Библиотека пользовательского контроля Xamarin.Forms
- 26. Стиль для пользовательского контроля
- 27. Создание пользовательского контроля в ios
- 28. Добавление контроля на панель во время выполнения
- 29. Как динамически изменять размер пользовательского контроля и содержимого?
- 30. Ошибка дизайна пользовательского контроля WPF
Как вы их загрузили? Вы знаете, где они загружены? Когда вам нужно вызвать LoadXML()? –