两个winform之间传数据方法,将datagridview数据传到另一个winform界面去,取出datagridview中选定的某行某列

首先,方法一:在有数据的那个form上的定义

public static string str="";

然后再

            if (uccDataGrid1.SelectedRows.Count > 0)
            {
                str = uccDataGrid1.CurrentRow.Cells["列名"].Value.ToString();


再在接收数据的form里显示数据:

MessageBox.Show(FormCdxx.str);

之所以要定义成static 的原因是:如果为:

public string str = "";
可能会出现问题,非静态变量只能实例化对象后,才可以访问,如果该值为动态赋值的话,当别的窗口调用的时候,该值 str,一直是为"";所以说最好能设置为静态成员变量,用类来访问它。
 
方法二:
在有数据的那个form上做如下处理:
            if (uccDataGrid1.SelectedRows.Count > 0)
            {
                DataRow row = (this.uccDataGrid1.CurrentRow.DataBoundItem as DataRowView).Row;
                FormAddCdxx formaddcdxx = new FormAddCdxx(row);

然后在接收数据的form里做如下定义:
        DataRow datarow;

再定义构造函数:
        public FormAddCdxx(DataRow row)
        {
            InitializeComponent();
            datarow = row;
        }

好了,接下来就可以调用,可以将datagridview中选定的某行某列的值取出来。如下例子:
                txtId.Text = datarow["id"].ToString();
                txtCdmc.Text = datarow["cdmc"].ToString();
                txtCdcc.Text = datarow["cdcc"].ToString();
                txtCkmc.Text = datarow["ckmc"].ToString();
                txtTpmc.Text = datarow["tpxx"].ToString();
                cmbSjcd.Text = datarow["sjcd"].ToString();

 

参考文章:(其实就看了方法一,给自己的方法加另一个static而已,嘿嘿)

继续点我!!!

你可能感兴趣的:(C#)