日期:2014-05-18  浏览次数:20830 次

新手请教:关于datatable传值
C# code

for (int c = 5; c <= 14; c++)
            {
                if (e.Button == MouseButtons.Left && f.listGrid.Col == c)
                {
                    Sift frmSift = new Sift();                     
                    DataTable dt = new DataTable();
                    dt.Columns.Add("编号");
                    dt.Columns.Add("姓名");
                    dt.Columns.Add("Mark1");
                    dt.Columns.Add("Mark2");
                    dt.Columns.Add("Mark3");

                    for (int r = f.listGrid.Rows.Fixed; r <= f.dataGrid.Rows.Count; r++)
                    {
                        Int32 qh = Convert.ToInt32(f.listGrid[r, 1]);
                        Int32 w = Convert.ToInt32(f.listGrid[r, 2]);
                        Int32 q = Convert.ToInt32(f.listGrid[r, 3]);
                        Int32 b = Convert.ToInt32(f.listGrid[r, 4]);

                        if (f.listGrid.GetCellImage(r, c) != null)
                        {
                            DataRow dr = dt.Rows.Add();
                            dr["编号"] = f.listGrid[r, 0];
                            dr["姓名"] = xm;
                            dr["Mark1"] = m1;
                            dr["Mark2"] = m2;
                            dr["Mark3"] = m3;
                        }
                    }
                    frmSift.siftData(dt);
                    frmSift.ShowDialog();
                }
            }



我把主表格的 第1、2、3、4列符合条件的数据传到了 弹出的 sift窗体

我还想把 第5~14列表头单元格的文字 传到 sift窗体里 的一个 label,该怎么做呢?

比如,
点击第5列时,在弹出的sift窗体的label1 显示[0,5] 的内容
点击第6列时,在弹出的sift窗体的label1 显示[0,6] 的内容

该怎么添加代码呢?
 

------解决方案--------------------
sift窗体中你想要访问的组件的modifers属性设置为public,然后通过 sift.xxx去访问
还可以 sift中发布属性,通过属性的setter,getter去控制 sift的内部组件
------解决方案--------------------
frmSift.label1.Text = Convert.ToString(f.listGrid[0, c]) + Convert.ToString(f.listGrid[1, c]);
你确定是 第 0 列 第 c 行吗,没弄反?
太密加点空格
frmSift.label1.Text = Convert.ToString(f.listGrid[0, c]) + " " + Convert.ToString(f.listGrid[1, c]);