如何实现DataGridView的添加删除修改?
2,在界面上拖入DataGridView控件
3,添加相应的列如图:
4,开始编写后面的代码:
PRivate DataTable CountryDt = new DataTable();
private DataTable CITyDt = new DataTable();
public Main()
{
Initializecomponent();
InitCountryDt();
InitCityDt();
InitGrid();
}
private void InitCityDt()
{
string[] citys = {
"CN|1|北京", "CN|2|天津", "CN|3|山西", "JP|4|大阪", "JP|5|横滨", "JP|6|名古屋", "JP|7|神户", "US|8|纽约"
, "US|9|洛杉矶", "US|10|芝加哥", "US|11|休斯敦", "US|12|费城", "US|13|旧金山"}
;
CityDt.Columns.Add("cityCode");
CityDt.Columns.Add("cityName");
CityDt.Columns.Add("Pid");
for (int i = 0;
i citys.Length;
i++)
{
VAR newRow = CityDt.NewRow();
newRow["cityCode"] = citys[i].Split('|')[1];
newRow["cityName"] = citys[i].Split('|')[2];
newRow["Pid"] = citys[i].Split('|')[0];
CityDt.Rows.Add(newRow);
}
}
private void InitCountryDt()
{
string[] countrys = {
"CN|中国", "JP|日本", "US|美国" }
;
CountryDt.Columns.Add("countryCode");
CountryDt.Columns.Add("countryName");
for (int i = 0;
i countrys.Length;
i++)
{
var newRow = CountryDt.NewRow();
newRow["countryCode"] = countrys[i].Split('|')[0];
newRow["countryName"] = countrys[i].Split('|')[1];
CountryDt.Rows.Add(newRow);
}
}
private void InitGrid()
{
var dt = new DataTable();
dt.Columns.Add("Id");
dt.Columns.Add("CountryCode");
dt.Columns.Add("CityCode");
for (int i = 10;
i 20;
i++)
{
var newRow = dt.NewRow();
newRow["Id"] = i.ToString();
dt.Rows.Add(newRow);
}
dataGridView1.DataSource = dt;
}
private void BTnAdd_Click(object sender, Eventargs e)
{
var dt = dataGridView1.DataSource as DataTable;
var newRow = dt.NewRow();
newRow["Id"] = dt.Rows.Count + 1;
dt.Rows.Add(newRow);
for (int i = 0;
i dt.Rows.Count;
i++)
{
var countryCell = new DataGridViewComboBoxCell();
countryCell.DataSource = CountryDt;
countryCell.ValueMember = "countryCode";
countryCell.DisplayMember = "countryName";
dataGridView1.Rows[i].Cells["countryCode"] = countryCell;
}
}
private void dataGridView1_CellValueChanged(object sender, DataGridViewCellEventArgs e)
{
var dt = this.dataGridView1.DataSource as DataTable;
if (dataGridView1.Columns[e.ColumnIndex].Name == nameof(CountryCode))
{
var countryCode = dataGridView1.Rows[e.RowIndex].Cells[e.ColumnIndex].Value;
var drs = CityDt.Select("Pid='" + countryCode + "'");
var newCityDt = new DataTable();
newCityDt.Columns.Add("cityCode");
newCityDt.Columns.Add("cityName");
newCityDt.Columns.Add("Pid");
foreach (DataRow row in drs)
{
var newRow = newCityDt.NewRow();
newRow["cityCode"] = row["cityCode"];
newRow["cityName"] = row["cityName"];
newRow["Pid"] = row["Pid"];
newCityDt.Rows.Add(newRow);
}
var cityCell = new DataGridViewComboBoxCell();
cityCell.DataSource = newCityDt;
cityCell.DisplayMember = "cityName";
cityCell.ValueMember = "cityCode";
dataGridView1.Rows[e.RowIndex].Cells["CityCode"] = cityCell;
}
}
private void Main_Load(object sender, EventArgs e)
{
var vdt = dataGridView1.DataSource as DataTable;
for (int i = 0;
i vdt.Rows.Count;
i++)
{
var cell = new DataGridViewComboBoxCell()
{
DisplayMember = "countryName",
ValueMember = "countryCode",
DataSource = CountryDt
}
;
dataGridView1.Rows[i].Cells["CountryCode"] = cell;
if (i % 2 == 0)
{
dataGridView1.Rows[i].Cells["CountryCode"].Value = "JP";
dataGridView1.Rows[i].Cells["CityCode"].Value = new Random().Next(4, 7);
}
//else {
// dataGridView1.Rows[i].Cells["CountryCode"].Value = "CN";
//}
if (i % 5 == 0)
{
dataGridView1.Rows[i].Cells["CountryCode"].Value = "CN";
dataGridView1.Rows[i].Cells["CityCode"].Value = new Random().Next(1, 3);
}
if (i % 9 == 0)
{
dataGridView1.Rows[i].Cells["CountryCode"].Value = "US";
dataGridView1.Rows[i].Cells["CityCode"].Value = new Random().Next(8, 13);
}
}
}
private void btnRemove_Click(object sender, EventArgs e)
{
var selected = dataGridView1.SelectedRows;
var dt = dataGridView1.DataSource as DataTable;
if (selected.Count >
0)
{
for (var i = 0;
i selected.Count;
i++)
{
var row = selected[i];
dt.Rows.RemoveAt(row.Index);
}
}
}
以上就是如何实现DataGridView的添加删除修改?的详细内容,更多请关注其它相关文章!
声明:本文内容由网友自发贡献,本站不承担相应法律责任。对本内容有异议或投诉,请联系2913721942#qq.com核实处理,我们将尽快回复您,谢谢合作!
若转载请注明出处: 如何实现DataGridView的添加删除修改?
本文地址: https://pptw.com/jishu/592422.html