当前位置:编程学习 > C#/ASP.NET >>

WinForm里面关于DataGridView的问题...(在线等..)

因为是个新手,所以有很多不懂的..还希望大家帮助下.

我想实现的功能是:
1.dataGridView显示一个数据表,但显示出来只看得见部分列..比如ID,和NAME..

2.在dataGridView,当用户选择一个字段值(比如ID或Name),然后点击一个(Button-更多),会把与这个字段值相关的值传到相应的textbox里面..

--------------------编程问答-------------------- 1 把不想见的this.DataGridView.Columns[3].Visible=False;//第4列不可见
2 点击Button的时候 
this.txtID.Text=this.DataGirdView.CurrentRow.Cell[0].Value.ToString();//把当前行的第一个Cell的值赋给textbox
--------------------编程问答-------------------- 1、查询的时候不使用select * from tblname,而是用select id,name,... form tblname
或按照1楼的方法。 --------------------编程问答-------------------- 1、可以自己定义想要显示哪些列的啊!想显示那列就把哪列绑定上去好了!
            dgv_show.Columns.Add("bid", "采购单号");
            dgv_show.Columns.Add("in_date", "登录日期");
            dgv_show.Columns.Add("buy_date", "采购日期");
            dgv_show.Columns.Add("provide_id", "供应商");     
            dgv_show.Columns.Add("buy_empid", "采购员");
            dgv_show.Columns.Add("flag_ischeck", "审核状态");
            dgv_show.Columns.Add("buy_moneytotal", "采购总金额");
            dgv_show.Columns.Add("havepay", "已付金额");       
            dgv_show.Columns.Add("get_date", "交货日期");
            dgv_show.Columns.Add("get_address", "送货地点");
            dgv_show.Columns.Add("get_empid", "收货人");
            dgv_show.Columns.Add("get_house", "收货仓库");
            dgv_show.Columns.Add("esc", "备注");
            dgv_show.RowHeadersWidth = 30;
            string sqlconn = "data source=.;database=hc;uid=sa;pwd=";
            SqlConnection con = new SqlConnection(sqlconn);
            con.Open();
            SqlCommand cmd = new SqlCommand(Form1.sql, con);
            SqlDataReader sr = cmd.ExecuteReader();
            while (sr.Read())
                {
                    string[] ss ={ sr["bid"].ToString(), sr["in_date"].ToString(), sr["buy_date"].ToString(), sr["provide_id"].ToString(), sr["buy_empid"].ToString(), sr["flag_ischeck"].ToString(), sr["buy_moneytotal"].ToString(), sr["havepay"].ToString(), sr["get_date"].ToString(), sr["get_address"].ToString(), sr["get_empid"].ToString(), sr["get_house"].ToString(), sr["esc"].ToString() };
                    this.dgv_show.Rows.Add(ss);
                }
2、this.txtID.Text=this.DataGirdView.CurrentRow.Cell[0].Value.ToString();楼上的就可以了! --------------------编程问答-------------------- http://blog.csdn.net/fangxinggood/archive/2007/04/11/1561011.aspx#818596 --------------------编程问答-------------------- 谢谢楼上的各位..

已经搞定..


现在又有一个新问题..

怎样在FORM1中使用FORM2的控件呢? --------------------编程问答-------------------- 最简单就是把form2中要用的控件公开,public --------------------编程问答-------------------- 改成public不太好吧..

--------------------编程问答-------------------- 给TextBox赋值还有一个方法:
把各个TextBox的Name统一为txt+要显示列的列名,如txtID,txtNAME等
private void button1_Click(object sender, EventArgs e)
        {
            foreach (DataGridViewCell cell in this.dataGridView1.CurrentRow.Cells)
            {
                ((TextBox)this.Controls.Find("txt" + this.dataGridView1.Columns[cell.ColumnIndex].HeaderText,false)[0]).Text = cell.Value.ToString();
            }
        }

这里,TextBox的个数必须跟表里列的个数对应,不然会出錯。把没用的隐藏便可。
--------------------编程问答-------------------- 是不是要传值?那就用构造函数吧!属性什么的也都可以!
form2:
namespace 传值
{
    public partial class Form2 : Form
    {
        public Form2()
        {
            InitializeComponent();
        }
        public Form2(string mm)
        {
            InitializeComponent();
            this.label1.Text = mm;
        }


namespace 属性传值
{
    public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();
        }

        private void button1_Click(object sender, EventArgs e)
        {            
            Form2 frm = new Form2(this.textBox1.Text);
            frm.ShowDialog();
        } --------------------编程问答-------------------- 如果你只是取那个控件的值的话,可以参考窗体间的传值方法,像属性、构造函数等
如果是触发那个控件的某个方法,可以使用委托等 --------------------编程问答--------------------
引用 10 楼 smntbk 的回复:
如果你只是取那个控件的值的话,可以参考窗体间的传值方法,像属性、构造函数等 
如果是触发那个控件的某个方法,可以使用委托等
--------------------编程问答-------------------- CSDN始终是我遇到问题是最想来的地方啊。。。。我要回到个问题都不给机会.... --------------------编程问答-------------------- http://blog.csdn.net/fangxinggood/archive/2007/04/11/1561011.aspx#818596 --------------------编程问答-------------------- 看不到显示的   主要是因为  绑定 和 对 列的设置的问题!

我是小菜鸟!   说的不好清见谅,   希望能够帮到你!
补充:.NET技术 ,  C#
CopyRight © 2022 站长资源库 编程知识问答 zzzyk.com All Rights Reserved
部分文章来自网络,