Check Box Column and Combobox column is not working in C# 2008 winform

EDN Admin

Well-known member
Joined
Aug 7, 2010
Messages
12,794
Location
In the Machine
Hello ,
I am new to win form application.<br/>
The purpose is to add marks for each student for each subject if they are present
<br/>
<br/>

I have created a dataGridView bind from a datatable. That grid has a CheckBox column and ComboxColumn[run time added binden from another data table]
The Problems which i faced are:<br/>
1. Only One CheckBox can be checked for the whole grid,where i need to check more that one.<br/>
2. What ever i type in marks[a TextBox Column] is disappeared when i move from that Cell to another .<br/>
3. The DropDown selection is not showing when ever i change the cell. And it looks that only one value is selectable for all rows. Where i need to select different values for different rows.
DataGridview Have 5 Databound Columns
UserId(Hidden), Student Name,Class,Present[Check Box Column,check if Student present for that subject],Marks[Text Box Column,Will type Marks Here]
And the Subjects[ComboBoxColumn] is added at runtime
Here is the code i have written

<div style="color:black; background-color:white
<pre><span style="color:blue using System;
<span style="color:blue using System.Collections.Generic;
<span style="color:blue using System.ComponentModel;
<span style="color:blue using System.Data;
<span style="color:blue using System.Drawing;
<span style="color:blue using System.Linq;
<span style="color:blue using System.Text;
<span style="color:blue using System.Windows.Forms;
<span style="color:blue using System.Data.SqlClient;

<span style="color:blue namespace TestApp
{
<span style="color:blue public <span style="color:blue partial <span style="color:blue class GridTest : Form
{
SqlConnection con = <span style="color:blue new SqlConnection(System.Configuration.ConfigurationSettings.AppSettings[<span style="color:#a31515 "conTest"]);

<span style="color:blue public GridTest()
{
InitializeComponent();
}

<span style="color:blue private <span style="color:blue void GridTest_Load(<span style="color:blue object sender, EventArgs e)
{
BindGrid();
}
<span style="color:blue public DataTable CreateUserDataTable()
{
DataTable dtUsr = <span style="color:blue new DataTable(<span style="color:#a31515 "Users");

dtUsr.Columns.Add(<span style="color:#a31515 "UserId", <span style="color:blue typeof(<span style="color:blue int));
dtUsr.Columns.Add(<span style="color:#a31515 "UserName", <span style="color:blue typeof(<span style="color:blue string));
dtUsr.Columns.Add(<span style="color:#a31515 "Class", <span style="color:blue typeof(<span style="color:blue string));

<span style="color:blue for (<span style="color:blue int i = 0; i < CreateSubjectDataTable().Rows.Count ; i++)
{
dtUsr.Rows.Add(1, <span style="color:#a31515 "Sourav", <span style="color:#a31515 "V");

}
<span style="color:blue for (<span style="color:blue int i = 0; i < CreateSubjectDataTable().Rows.Count ; i++)
{
dtUsr.Rows.Add(1, <span style="color:#a31515 "Sam", <span style="color:#a31515 "VI");

}
<span style="color:blue for (<span style="color:blue int i = 0; i < CreateSubjectDataTable().Rows.Count ; i++)
{
dtUsr.Rows.Add(1, <span style="color:#a31515 "Mike", <span style="color:#a31515 "VII");

}
<span style="color:blue return dtUsr;
}

<span style="color:blue public DataTable CreateSubjectDataTable()
{
DataTable dtSubs = <span style="color:blue new DataTable(<span style="color:#a31515 "Subjects");

dtSubs.Columns.Add(<span style="color:#a31515 "SubId", <span style="color:blue typeof(<span style="color:blue int));
dtSubs.Columns.Add(<span style="color:#a31515 "SubName", <span style="color:blue typeof(<span style="color:blue string));

dtSubs.Rows.Add(1, <span style="color:#a31515 "Math");
dtSubs.Rows.Add(2, <span style="color:#a31515 "Phys");
dtSubs.Rows.Add(3, <span style="color:#a31515 "Chem");

<span style="color:blue return dtSubs;
}

<span style="color:blue public <span style="color:blue void BindGrid()
{
dataGridView1.AutoGenerateColumns = <span style="color:blue false;
<span style="color:green //Bind Grid using Data table
dataGridView1.DataSource = CreateUserDataTable();
<span style="color:green //Bind Combobox in dataGridView
BindComboInGrid();

}
<span style="color:blue public <span style="color:blue void BindComboInGrid()
{

DataGridViewComboBoxColumn dgvComboBox = <span style="color:blue new DataGridViewComboBoxColumn();
dgvComboBox.HeaderText = <span style="color:#a31515 "Subject Namee";
dgvComboBox.DataSource = CreateSubjectDataTable();
dgvComboBox.DisplayMember = <span style="color:#a31515 "SubName";
dgvComboBox.DataPropertyName = <span style="color:#a31515 "SubId";

dgvComboBox.DisplayStyle = DataGridViewComboBoxDisplayStyle.Nothing;
dgvComboBox.FlatStyle = FlatStyle.Standard;

dataGridView1.Columns.Insert(5,dgvComboBox);

}

<span style="color:blue private <span style="color:blue void btnReadGrid_Click(<span style="color:blue object sender, EventArgs e)
{
<span style="color:green //Read the grid Data
<span style="color:blue foreach (DataGridViewRow dRow <span style="color:blue in dataGridView1.Rows)
{
<span style="color:blue string sVal = <span style="color:blue string.Empty;
DataGridViewTextBoxCell dgtb = (DataGridViewTextBoxCell)dRow.Cells[4];
sVal = dgtb.Value.ToString();<span style="color:green // dRow.Cells[4].Value.ToString().Trim();
}

<span style="color:blue foreach (DataGridViewRow dRow <span style="color:blue in dataGridView1.Rows)
{
<span style="color:blue string sVal = <span style="color:blue string.Empty;
DataGridViewComboBoxCell dgCmb = (DataGridViewComboBoxCell)dRow.Cells[5];
sVal = dgCmb.Value.ToString();<span style="color:green // dRow.Cells[3].Value.ToString().Trim();
}

}
}
}

[/code]


I know there is something wrong.but alas cant find out.
Please help me to solve this.Any sort of help is great for me
Thanks in advance
Sourav Moy Sau

<br/>

View the full article
 
Back
Top