Solved

Making a column in DataGridView with ComboBox

Posted on 2009-04-02
4
381 Views
Last Modified: 2013-12-14
Hi currently I have a DataGridView table read from a Oracle database,One of the column is meant to take in only "1" or "0" as a value, so I was wondering if I can make the whole column into a combobox and read the current value as well as letting th user to change using the combobox.

Thanks in advance for any help offered.
localSQL = "SELECT KEYID,TAG,DESC,STATE,FROM PRODUCT1";
                    OracleCommand cmdOracle = new OracleCommand(localSQL, localConnection);
                    cmdOracle.CommandType = CommandType.Text;
                    OracleDataReader drOracle = cmdOracle.ExecuteReader();
                    DataTable ordt = new DataTable();
                    OracleDataAdapter orda = new OracleDataAdapter();
                    orda.SelectCommand = cmdOracle;
                    orda.Fill(ordt);
                    dataView1.DataSource = ordt.DefaultView;
                    dataView1.RowsDefaultCellStyle.BackColor = Color.White;
                    dataView1.Columns[3].Width = 150;
                    dataView1.AlternatingRowsDefaultCellStyle.BackColor = Color.LightBlue;
                    drOracle.Close();

Open in new window

0
Comment
Question by:csharp_learner
  • 3
4 Comments
 
LVL 7

Expert Comment

by:DanSo1
ID: 24076345
Hi
OK, try to do it that way:
right click on your datagridview, choose Edit columns...
in the list (left side) select your field
in properties for that field choose ColumnType and change it to "DataGridViewComboBoxColumn"
after that, you can choose property DisplayStyle : DropDownButton or ComboBox (there is a small difference - in combobox user can type, in DropDownButton user can only choose item).
Next things is to set properly those properties: DataSource, DisplayMember, ValueMember or/and Items.

I hope that it will help you.

Regards
   Danso
0
 

Author Comment

by:csharp_learner
ID: 24083473
Hi,Sorry for the late reply.
As my datagrid view is read from the database there is no items listed in the Edit Columns.
And when i tried to insert the items into the column the result is there will be 2 sets of datagridview side by side.
The left set is the one i assign to the datagridview using u're suggestion and hence there is a combobox,the 2nd set on the right is the current datagridview read from the database.
0
 
LVL 7

Expert Comment

by:DanSo1
ID: 24084688
Everything what we doing in VS environment is also possible to do from source code. The easiest way to figure out how to do it is to see file xxxx.Designer.cs where your VS created code.
If you still have problem with that I will prepare some example code how to add combo in runtime.

Regards
  Danso
0
 
LVL 7

Accepted Solution

by:
DanSo1 earned 450 total points
ID: 24085050
Hi
Try this code. It's adding a column with combo where user can choose 0 or 1.

Regards
  Danso
            System.Windows.Forms.DataGridViewComboBoxColumn MyColumnGridViewTextBoxColumn = new System.Windows.Forms.DataGridViewComboBoxColumn();
            this.dataGridView1.Columns.Add(MyColumnGridViewTextBoxColumn);
 
            MyColumnGridViewTextBoxColumn.DataPropertyName = "my_field_name";
            MyColumnGridViewTextBoxColumn.HeaderText = "This is header";
            MyColumnGridViewTextBoxColumn.Items.AddRange(new object[] {
            "0",
            "1"});
            MyColumnGridViewTextBoxColumn.Name = "MyColumnGridViewTextBoxColumn";
            MyColumnGridViewTextBoxColumn.Resizable = System.Windows.Forms.DataGridViewTriState.True;
            MyColumnGridViewTextBoxColumn.SortMode = System.Windows.Forms.DataGridViewColumnSortMode.Automatic;

Open in new window

0

Featured Post

Announcing the Most Valuable Experts of 2016

MVEs are more concerned with the satisfaction of those they help than with the considerable points they can earn. They are the types of people you feel privileged to call colleagues. Join us in honoring this amazing group of Experts.

Question has a verified solution.

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

Introduction Although it is an old technology, serial ports are still being used by many hardware manufacturers. If you develop applications in C#, Microsoft .NET framework has SerialPort class to communicate with the serial ports.  I needed to…
Here is a helpful source code for C++ Builder programmers that allows you to manage and manipulate HTML content from C++ code, while also handling HTML events like onclick, onmouseover, ... Some objects defined and used in this source include: …
This tutorial covers a step-by-step guide to install VisualVM launcher in eclipse.
The viewer will learn how to synchronize PHP projects with a remote server in NetBeans IDE 8.0 for Windows.

825 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