• 技术文章 >后端开发 >C#.Net教程

    如何实现DataGridView的添加删除修改?

    零下一度零下一度2017-06-24 09:31:03原创2513
    1,创建winform窗体应用程序

    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的添加删除修改?的详细内容,更多请关注php中文网其它相关文章!

    声明:本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn核实处理。
    上一篇:关于.net C# Sql数据库SQLHelper类实例代码 下一篇:本地IIS运行调试遇到的问题及解决方案
    PHP编程就业班

    相关文章推荐

    • 分享一道逻辑面试题,看看你能答对吗!• C++设计模式浅识装饰模式• SUNWEN教程之----C#进阶(五)• asp.net core mvc实现文件上传实例• SUNWEN教程之----C#进阶(十一)

    全部评论我要评论

  • 取消发布评论发送
  • 1/1

    PHP中文网