private void ExportTab(object sender, EventArgs e) { if (GetSelectedLibraryItem() != null) { using (var sfd = new SaveFileDialog { Title = Resources.ExportTabDialogTitle, AddExtension = true, Filter = string.Format("{0} (*{1})|*{1}", Resources.TabsterFile, Constants.TablatureFileExtension), FileName = GetSelectedLibraryItem().File.ToFriendlyString() }) { var filters = sfd.SetTabsterFilter(_fileExporters, alphabeticalOrder: true); if (sfd.ShowDialog() != DialogResult.Cancel) { //native file format if (sfd.FilterIndex == 1) { GetSelectedLibraryItem().File.Save(sfd.FileName); } else { var exporter = filters[sfd.FilterIndex - 2].Exporter; //FilterIndex is not 0-based and native Tabster format uses first index var args = new TablatureFileExportArguments(TablatureFontManager.GetFont()); try { exporter.Export(GetSelectedLibraryItem().File, sfd.FileName, args); } catch (Exception ex) { Logging.GetLogger().Error(Resources.ExportErrorDialogCaption, ex); MessageBox.Show(Resources.ExportErrorDialogCaption, Resources.ExportErrorDialogTitle, MessageBoxButtons.OK, MessageBoxIcon.Error); } } } } } }