コード例 #1
0
        /// <summary>
        /// Display dialog to allow user to select a category item from specified category.
        /// </summary>
        /// <param name="sheet"></param>
        /// <param name="categoryName"></param>
        /// <param name="instructions"></param>
        /// <param name="defaultSelectedIndex"></param>
        /// <param name="useCategorySelectedItemIndex"></param>
        /// <returns></returns>
        public static CategoryItem SelectCategoryItem(Sheet sheet, String categoryName, String instructions, Int32 defaultSelectedIndex, Boolean useCategorySelectedItemIndex)
        {
            CategoryItem returnValue      = default(CategoryItem);
            Category     category         = default(Category);
            String       categoryItemName = default(String);

            try
            {
                //User must select a Category Item.

                // Display the form as a modal dialog box.
                SelectDialog dialog = new SelectDialog();

                //set dialog icon
                dialog.Icon = MultiDimensionalSpreadsheetLibrary.Properties.Resources.MultiDimensionalSpreadsheet;

                //set dialog title
                dialog.Text = "Select a Category Item";

                //set instructions
                dialog.lblInstructions.Text = instructions;

                //set category name
                category = sheet.Categories.Find(c => c.Name == categoryName);
                dialog.lblCategoryName.Text = category.Name;

                // Add  category items to the listbox
                dialog.ddlCategoryItems.DataSource    = category.Items;
                dialog.ddlCategoryItems.DisplayMember = "Name";
                dialog.ddlCategoryItems.ValueMember   = "Name";

                //pre-set selection
                if (useCategorySelectedItemIndex)
                {
                    dialog.ddlCategoryItems.SelectedIndex = category.SelectedItemIndex;
                }
                else if (defaultSelectedIndex != -1)
                {
                    dialog.ddlCategoryItems.SelectedIndex = defaultSelectedIndex;
                }

                //show dialog;
                dialog.ShowDialog();

                // Determine if the OK button was clicked on the dialog box.
                if (dialog.DialogResult == DialogResult.OK)
                {
                    categoryItemName = ((CategoryItem)dialog.ddlCategoryItems.SelectedItem).Name;
                    dialog.Dispose();
                    returnValue = category.Items.Find(ci => ci.Name == categoryItemName);
                }
                else
                {
                    dialog.Dispose();
                }
            }
            catch (Exception ex)
            {
                Log.Write(ex, MethodBase.GetCurrentMethod(), EventLogEntryType.Error);

                throw;
            }
            return(returnValue);
        }