Solved

Need code for Combobox SelectedIndexChanged-event

Posted on 2014-01-23
2
332 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
[X]
Welcome to Experts Exchange

Add your voice to the tech community where 5M+ people just like you are talking about what matters.

  • Help others & share knowledge
  • Earn cash & points
  • Learn & ask questions
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

Turn Insights Into Action

You’ve already invested in ITSM tools, chat applications, automation utilities, and more. Fortify these solutions with intelligent communications so you can drive business processes forward.

With xMatters, you'll never miss a beat.

Question has a verified solution.

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

A basic question.. “What is the Garbage Collector?” The usual answer given back: “Garbage collector is a background thread run by the CLR for freeing up the memory space used by the objects which are no longer used by the program.” I wondered …
Recently while returning home from work my wife (another .NET developer) was murmuring something. On further poking she said that she has been assigned a task where she has to serialize and deserialize objects and she is afraid of serialization. Wha…
In this video, viewers are given an introduction to using the Windows 10 Snipping Tool, how to quickly locate it when it's needed and also how make it always available with a single click of a mouse button, by pinning it to the Desktop Task Bar. Int…
There's a multitude of different network monitoring solutions out there, and you're probably wondering what makes NetCrunch so special. It's completely agentless, but does let you create an agent, if you desire. It offers powerful scalability …

691 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