有一个form1和form2窗体,我在form1点击添加按钮弹出
form2,在from2填完信息后保存,添加的信息就显示在
form1的DataGridView里(我是重新绑定数据的)。请问该行如何获取焦点且显示在第一行?

解决方案 »

  1.   

    单击form1按钮,弹出form2,将form1的传给form2,在form2中拿到对form1的引用,点击保存,直接对form1的DataGridView进行操作,跟新,第一行获得焦点,直接setfouces就好了
    VS刚卸载了,没法给你写代码,自己写吧,大概思想就这样,就是拿到引用就能直接操作了, 自己写加深点理解
      

  2.   

    我更新是通过委托来实现的
    直接对form1的DataGridView进行操作?不懂
      

  3.   

    你的问题,就是如何在Form2中调用Form1的方法。
    Form1:
         public partial class MainForm : Form
        {
            public MainForm()
            {
                InitializeComponent();
            }        public void SetFocus()
            { 
                //你想做的工作、
                MessageBox.Show("OK");
            }        private void button1_Click(object sender, EventArgs e)
            {
                Form2 frm = new Form2();
                frm.FrmMain = this;
                frm.ShowDialog();
            }
        }
    Form2:
        public partial class Form2 : Form
        {
            public Form2()
            {
                InitializeComponent();
            }        private MainForm frmMain = null;
            /// <summary>
            /// 设置主窗体句柄
            /// </summary>
            public MainForm FrmMain
            {
                set { this.frmMain = value; }
            }        private void Form2_FormClosed(object sender, FormClosedEventArgs e)
            {
                this.Dispose();
                this.frmMain.SetFocus();
            }
        }
        
      

  4.   

    一般通过委托添加
    DataGridViewRow row = new DataGridViewRow();   
    row.Cells[0].Value =dt[""].ToString();   
    row.Cells[1].Value = dt[""].ToString();   
    this.dataGridView1.Rows.Add(row);插入到第一行使用
    this.dataGridView1.Rows.Insert(0, "");
      

  5.   

    dbgComRukuList.Rows[dbgComRukuList.Rows.Count-1].Selected = true;
    dbgComRukuList.FirstDisplayedScrollingRowIndex = dbgComRukuList.Rows.Count -
      

  6.   

    不要用委托了,直接把DataGridView作为引用在构造函数里传递过去。那边就可以直接操作了