Solved

Need code for Combobox SelectedIndexChanged-event

Posted on 2014-01-23
2
329 Views
Last Modified: 2014-01-23
Dear Experts,

I want to try to make a Character Map just like Windows has. I have a combobox on my
form to get the System Fonts and I have used a DataGridView to display the characters.
Now only thing I need is to program the SelectedIndexChanged-event to display the
characters in DataGridView which belongs to the fontname when the user selects a font in the combobox. I have searched and found only vb-code that I don't understand. Who can help me?

        private const int NoOfCols = 16;
        private const int ColWidth = 24;

        public CharMap()
        {
            InitializeComponent();
        }

        private void CharMap_Load(object sender, EventArgs e)
        {
            //Set txtCopyChar as focus
            this.ActiveControl = txtCopyChar;

            //Get a list of font names into combo box.
            InstalledFontCollection fc = new InstalledFontCollection();
            foreach (FontFamily Item in fc.Families)
            {
                cboFontName.Items.Add(Item.Name);
            }
            cboFontName.SelectedIndex = 0;

            //Setup datagrid
            SetupDataGrid();
            //Select the first item
            CharGrid[1, 0].Selected = true;
        }

        private void SetupDataGrid()
        {
            //Number of columns to create.
            CharGrid.ColumnCount = NoOfCols;

            foreach (DataGridViewColumn Column in CharGrid.Columns)
            {
                //Set column width.
                Column.Width = ColWidth;
            }

            //Add rows
            CharGrid.Rows.Add(14);

            //Add chars to data grid
            AddCharsToGrid(0, 32);
            AddCharsToGrid(1, 48);
            AddCharsToGrid(2, 64);
            AddCharsToGrid(3, 80);
            AddCharsToGrid(4, 96);
            AddCharsToGrid(5, 112);
            AddCharsToGrid(6, 128);
            AddCharsToGrid(7, 144);
            AddCharsToGrid(8, 160);
            AddCharsToGrid(9, 176);
            AddCharsToGrid(10, 196);
            AddCharsToGrid(11, 208);
            AddCharsToGrid(12, 224);
            AddCharsToGrid(13, 240);

        }

        private void AddCharsToGrid(int Row, int Index)
        {
            for (int Counter = 0; Counter <= 15; Counter++)
            {
                CharGrid[Counter, Row].Value = (char)(Index + Counter);
            }
        }

Open in new window


Greetings, Peter Kiers
0
Comment
Question by:peterkiers
2 Comments
 
LVL 35

Accepted Solution

by:
Robert Schutt earned 500 total points
ID: 39803473
In the CharMap_Load function, add this line between your existing lines 19/20 as posted above):
cboFontName.SelectedIndexChanged += new EventHandler(cboFontName_SelectedIndexChanged); // attach the event handler

Open in new window

Then, add the event handler itself:
        void cboFontName_SelectedIndexChanged(object sender, EventArgs e) {
            try {
                CharGrid.Font = new Font(cboFontName.SelectedItem.ToString(), CharGrid.Font.Size);
            }
            catch (Exception ex) {
                //MessageBox.Show("error while setting font: " + ex.Message);
            }
        }

Open in new window

0
 
LVL 1

Author Comment

by:peterkiers
ID: 39804271
Thanks it works great. Greetings, Peter Kiers
0

Featured Post

Master Your Team's Linux and Cloud Stack!

The average business loses $13.5M per year to ineffective training (per 1,000 employees). Keep ahead of the competition and combine in-person quality with online cost and flexibility by training with Linux Academy.

Question has a verified solution.

If you are experiencing a similar issue, please ask a related question

Suggested Solutions

Summary Displaying images in RichTextBox is a common requirement with limited solutions available. Pasting through clipboard or embedding into RTF content only support static images.  This article describes how to insert Windows control objects int…
Wouldn’t it be nice if you could test whether an element is contained in an array by using a Contains method just like the one available on List objects? Wouldn’t it be good if you could write code like this? (CODE) In .NET 3.5, this is possible…
This Micro Tutorial will give you a basic overview how to record your screen with Microsoft Expression Encoder. This program is still free and open for the public to download. This will be demonstrated using Microsoft Expression Encoder 4.
This Micro Tutorial hows how you can integrate  Mac OSX to a Windows Active Directory Domain. Apple has made it easy to allow users to bind their macs to a windows domain with relative ease. The following video show how to bind OSX Mavericks to …

776 members asked questions and received personalized solutions in the past 7 days.

Join the community of 500,000 technology professionals and ask your questions.

Join & Ask a Question