Все, у меня есть UserCostrol
, который мне недавно пришлось изменить. Это изменение потребовало от меня ссылки на форму Parent
и использования свойства из этой формы. Эти ссылки, казалось бы сломаны дизайнер - я получаю сообщение об ошибкеКак правильно указать родительскую форму с UserControl
«Не удается привести объект типа„System.Windows.Forms.Form“к типу 'Project.SettingsForm»
который был описан в Unable to cast object of type 'System.Windows.Forms.Form' to type 'Project.Form1'.
Я добавил свойство обрабатывать ссылку на Parent
форме, как описано в ответе refernced выше, но теперь ошибка дизайнер говорит
«Не удалось привести объект типа«System.Windows. FormsPanel ', чтобы напечатать «Project.SettingsForm».
Первая строка которой compilier стонет о помечается '<-- Here'
в коде ниже
public partial class UiSettingFascia : UserControl, ISettingsControl
{
public UiSettingFascia()
{
InitializeComponent();
}
private void UiSettingFascia_Load(object sender, EventArgs e)
{
LoadSettings();
CheckBoxShowTabs.CheckedChanged += Workbook_StateChanged;
CheckBoxShowVirticalScroll.CheckedChanged += Workbook_StateChanged;
CheckBoxShowHorizontolScroll.CheckedChanged += Workbook_StateChanged;
}
public void LoadSettings()
{
UserSettings userSettings = UserSettings.Instance();
...
MainRibbonForm mainRibbonForm = (ControlParent).MainRibbonForm; // <-- Here.
...
}
}
Чтобы попытаться решить исходную задачу [«Не удалось привести объект типа«System.Windows .Forms.Form»к типу„“Project.SettingsForm»] Я создал следующее свойство
public SettingsForm ControlParent
{
get { return Parent as SettingsForm; }
}
Как я могу обойти эту проблему [«Невозможно лишить объект типа« System.Windows.Forms.Panel »для ввода« Project.SettingsForm »«] при сохранении моей функциональности UserControl
?
Спасибо за ваше время.
использовать событие, чтобы поговорить с родительской формы. – Jonesopolis
Почему бы вам просто не использовать: 'var settingsForm = (SettingsForm) this.ParentForm;'? –
@AlexFilipovici - это то, во время компиляции времени разработки 'UserControl' элемента управления не должно ничего знать о типе родительских форм. Я попытался «отвлечь его», используя свойство, которое все еще не идеально, понятно ... – MoonKnight