如何在C#中 双击datagridview1中的一行数据,添加到新的datagridview2中。 B/C VS2010

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了如何在C#中 双击datagridview1中的一行数据,添加到新的datagridview2中。 B/C VS2010相关的知识,希望对你有一定的参考价值。

如何在C#中 双击datagridview1中的一行数据,添加到新的datagridview2中。请给出完整代码。谢谢了,假设datagridview1中已经添加上数据,datagridview2是空表。这个问题困扰我好长时间了 ,不胜感激。虽然没有多少分数。这是我所有的分数了!~~

这个每个控件,都是由事件触发方法。你在双击的事件中。判断,抓出那条数据。
数据的格式,你可以自己存个structs,或者自己存个类,或者自己使用方法存放。
然后把这个封装的数据类型,作为参数,触发另外一个方法,
这个方法你自己写,参数就是刚才抓到的数据类型。方法的功能就是把参数分析后,填充到第二个datagridview2中。追问

希望给出源代码!~~~

追答

双击事件 ()

抓数据;(你说你会)
抓来存数据;(姓名,年纪,你干脆写个类A,即public class A,A有属性name,age,然后new个A。赋值A.NAME =xx.依次类推)
调用一个方法:存数据方法(参数 A);


存数据方法(参数 A)

把A分析后,添加进datagridview2。

追问

这个源码太给力了。我研究一下啊!~~

追答

给个思路 希望你好好理解。以后你会发现,很多做网页也好,做数据也好,大多数是以类为单位来传递的。往往一个类就对应一个数据库中的一个表。刚刚合适。也有复合体。
参数小到整形,字符型,中到struct、类、数组等,大到LIST等泛型。

追问

还有一个问题我已经选取了一个 关键字 ID=value1, string value1 = dataGridView1[0, dataGridView1.CurrentCell.RowIndex].Value.ToString().Trim(); 就是添加新行到datagridview里面不会 请详细解释。不胜感激

追答

添加列:
DataGridViewColumn column = new DataGridViewColumn();
设置column属性如:column.HeaderText = "列名";
dgv1.columns.add(column);

添加行:
DataGridViewRow row = new DataGridViewRow();
设置row属性
dgv1.rows.add(row);

其中设置row属性,就把你那个类对应设置一下,类似row[0]=类.A,row[1]=类.B,有多少列设置多少。

参考技术A dataGridView1 中被双击的那行 要删除吗?

如果不删除的话 我这样就可以了 (测试过的)
private void dataGridView1_DoubleClick(object sender, EventArgs e)

//获取点击行第一列的数据
string barcode = dataGridView1.CurrentRow.Cells[0].Value.ToString();

//根据获取的数据填充datagridView
string sql = "select barcode,shopno from MD_ClothesSwapDetails where barcode = "+barcode;

dataGridView2.DefaultCellStyle.Font = new Font("宋体", 11);

SqlDataAdapter adapter = new SqlDataAdapter(sql, DBhelper.conn);
DataTable table = new DataTable();
adapter.Fill(table);
dataGridView2.DataSource = table;



private void Form1_Load(object sender, EventArgs e)

string sql = "select barcode,shopno from MD_ClothesSwapDetails ";

dataGridView1.Columns.Clear();
dataGridView1.DefaultCellStyle.Font = new Font("宋体", 11);

SqlDataAdapter adapter = new SqlDataAdapter(sql, DBhelper.conn);
DataTable table = new DataTable();
adapter.Fill(table);
dataGridView1.DataSource = table;


不知道 符不符合你的要求
参考技术B 这不是很简单的问题吗,就不是个问题,你在双击datagridview1时取出数据会吗追问


这个没问题 但是怎么才能添加到datagridview2中呢

追答

你新建一个DataTable,在这个新建的DataTable里定义与datagridview1所绑定的DataTable同样的列,然后把你双击datagridview1时取出的数据添加到新建的DataTable里,再把这个新建的DataTable绑定到datagridview2

追问

用ataGridView1_MouseDoubleClick事件 ,还是用ataGridView1_MouseDoubleClick这个事件?

C# 选中 DataGridView 控件中的行时显示不同的颜色

   可以利用 DataGridView 控件的 SelectionMode、ReadOnly 和 SelectionBackColor 属性实现当选中DataGridView控件中的行时显示不同的颜色。

          SelectionMode属性用于设置如何选择 DataGridView 的单元格。

       语法如下:

       public DataGridViewSelectionMode SelectionMode{get;set;}

      属性值:DataGridViewSelectionMode 值之一,默认为 RowHeaderSelect。        DataGridViewSelectionMode 枚举值及说明如表 1 所示。

表1   DataGridViewSelectionMode 枚举值及说明

     说明 

     在更改SelectionMode 届性的值时,会清除当前的选择,所以在更改行的颜色时,要注意更改和选中的顺序。

        ReadOnly 属性用于设置是否可以编辑 DataGridView 控件的单元格。

     语法如下:

     public bool ReadOnly {get; set; }

     属性值:如果用户不能编辑 DataGridView 控件的单元格,则为 true;否则为 false。默认为 false.

    【例1】 禁止用户编辑 DataGridView 控件的单元格。

     代码如下:

     dataGridView1.ReadOnly.=true;

        SelectionBackColor 属性用于设置 DataGridView 单元格在被选定时的背景色。

     语法如下:

     public Color SelectionBackColor ({get; set;}

     属性值:Color,它表示选定单元格的背景色,默认为 Empty。

     SelectionBackColor 属性包含在 DataGridViewCellStyle 类中,所以调用此属性之前要调用 DataGridViewCellIStyle 属性。

    【例2】创建一个 Windows 应用程序,向窗体中添加一个 DataGridView 控件,用于显示 tb_emp表中的所有数据。然后通过 DataGridView 控件的 SelectionMode、ReadOnly 和 SelectionBackColor 属性实现选中某一行时,行的背景变色.

      代码如下:

SqlConnection conn;         //声明 SqlConnection 变量 
private void Form1_Load(object sender,EventArgs e)
{
//实例化 SqlConnection 变量 conn,连接数据库
conn = new SqlConnection("server=.;database=db_16;uid=sa;pwd=");
//实例化 SqlDataAdapter 对象
SqlDataAdapter sda = new SqlDataAdapter("select*from tb_emp",conn;
//实例化 DataSet 对象
DataSet ds = new DataSet();
//使用 SqlDataAdapter 对象的 Fill 方法填充 DataSet 
sda.Fill(ds);
//设置 dataGridView1控件的数据源
dataGridView1.DataSource = ds.Tables[0];
//设置 SelectionMode 属性为 FullRowSelect,使控件能够整行选择
dataGridView1.SelectionMode= DataGridViewSelectionMode.FullRowSelect;
//设置 dataGridView1 控件的 ReadOnly 属性,使其为只读
dataGridView1.ReadOnly =true;
//设置 dataGridView1控件的 DefaultCellStyle.SelectionBackColor 属性,使其选择行为黄绿色 
dataGridView1.DefaultCellStyle.SelectionBackColor= Color.YellowGreen;
}

程序的运行结果如图1所示。

图1    选中某行时显示不同的颜色

END -



关注小编不迷路呦~

以上是关于如何在C#中 双击datagridview1中的一行数据,添加到新的datagridview2中。 B/C VS2010的主要内容,如果未能解决你的问题,请参考以下文章

在c#中怎么删除datagridview里面的一条数据

c# 如何删除datagrieview中指定那行数据

C# winfrom datagridview 子父窗口传值问题

c#中,excel表格内容展现在datagridview1中,如何实现?

C# winform程序中 如何获取和设置dataGridView1的垂直滚动条当前位置?

C#如何读写EXcel然后在dataGridView1中显示