public OptionsForm(Settings settings, OnlineSettings onlineSettings, FormEvents buttonActions) { _formEvents = buttonActions; _languageOnForm = new LanguageOnForm(); _settings = settings; _onlineSettings = onlineSettings; InitializeComponent(); InitializeLanguage(); InitializeProperties(); BindButtonEvents(); }
//At some point you could take a look at IoC Containers //It'll take off the responsibility from you to initialize everything in MainForm //And inject every required class. //You'll only need to register them in the IoC Container and then use them just like, // in AspNetCore public MainForm() { InitializeComponent(); _settingsHandler = new SettingsHandler(); _settings = _settingsHandler.LoadSettingsFile() as Settings; _onlineSettings = _settingsHandler.LoadSettingsFile(true) as OnlineSettings; _inboundMessage = new SignalRMessage(); _outgoingMessage = new SignalRMessage(); _clipboardManager = new ClipboardManager(_inboundMessage, _outgoingMessage, _settings); _cloudInteractions = new CloudInteractions(_inboundMessage, _outgoingMessage, _settings, _onlineSettings); _writeHistoryFile = new HistoryFile(_clipboardManager, _settings); _languageOnForm = new LanguageOnForm(); _formEvents = new FormEvents(_clipboardManager, notificationIcon, this, _settings, _writeHistoryFile, _onlineSettings); _startWithWindows = new LaunchOnStartup(_settings); _checkConnection = new CheckStaticConnectionState(Label_Connection_DONOTMODIFY, timer_checkConnection); EnumSetLang(); BindProperties(); BindButtonActions(); }