| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 2822 人关注过本帖
标题:请教一下,如何跨窗体调用方法
只看楼主 加入收藏
zw2864076
Rank: 1
等 级:新手上路
帖 子:76
专家分:0
注 册:2007-6-16
结帖率:100%
收藏
已结贴  问题点数:10 回复次数:7 
请教一下,如何跨窗体调用方法
图片附件: 游客没有浏览图片的权限,请 登录注册

选中dataGridView中数据点击修改按钮,将选中的数据传到B窗体中的控件.
然后进行修改,完成后点击保存后,调用A窗体中dataGridView1绑定方法

现在问就是不知道如何在B窗体中调用A窗体里的数据绑定方法

A窗体中的代码
namespace WindowsFormsApplication1
{
    public partial class AForm : Form
    {
        public AForm()
        {
            InitializeComponent();
        }

        private void AForm_Load(object sender, EventArgs e)
        {
            LoingGridView();//调用GridView数据绑定方法
        }
        private void LoingGridView()//GridView数据绑定方法
        {
            SqlConnection conn = new SqlConnection("server=.;uid=sa;pwd=****;database=WHJLS_Wage");
            SqlDataAdapter sda = new SqlDataAdapter("select * from WHJLS_Login", conn);
            DataTable dt = new DataTable();
            sda.Fill(dt);
            dataGridView1.DataSource = dt;
        }

        private void tsbModify_Click(object sender, EventArgs e)//修改按钮
        {
            BForm b = new BForm(dataGridView1);
            b.ShowDialog();
        }
      
    }
}


B窗体中的代码
namespace WindowsFormsApplication1
{
    public partial class BForm : Form
    {
        public BForm(DataGridView dgv)
        {
            InitializeComponent();
            txtID.Text = dgv.SelectedCells[0].Value.ToString();
            txtUser.Text = dgv.SelectedCells[1].Value.ToString();
            txtPwd.Text = dgv.SelectedCells[2].Value.ToString();
        }
      
        private void BForm_Load(object sender, EventArgs e)
        {

        }

        private void tsbSave_Click(object sender, EventArgs e)//保存
        {
            //请问一下如何在这里调用A窗体中的
             LoingGridView()//GridView数据绑定方法
        }
    }
}

在线等待
搜索更多相关主题的帖子: class void private public 如何 
2012-02-10 14:42
zw2864076
Rank: 1
等 级:新手上路
帖 子:76
专家分:0
注 册:2007-6-16
收藏
得分:0 
兄弟们帮我顶起来啊,程序开发到这里卡住了.
2012-02-10 14:45
wypdragon
Rank: 3Rank: 3
等 级:论坛游侠
帖 子:29
专家分:110
注 册:2011-11-19
收藏
得分:0 
有两种方式,
1、写一个类,类有LoingGridView()方法;A、B窗口声明该类,调用该类的LoingGridView()方法。
2、将上面A窗口的改成public static void LoingGridView()静态方法

B窗口
        private void tsbSave_Click(object sender, EventArgs e)
        {
           AForm.LoingGridView()
        }

[ 本帖最后由 wypdragon 于 2012-2-10 15:27 编辑 ]
2012-02-10 15:25
zw2864076
Rank: 1
等 级:新手上路
帖 子:76
专家分:0
注 册:2007-6-16
收藏
得分:0 
收到,我先试试看
2012-02-10 15:52
zw2864076
Rank: 1
等 级:新手上路
帖 子:76
专家分:0
注 册:2007-6-16
收藏
得分:0 
以下是引用wypdragon在2012-2-10 15:25:44的发言:

有两种方式,
1、写一个类,类有LoingGridView()方法;A、B窗口声明该类,调用该类的LoingGridView()方法。
2、将上面A窗口的改成public static void LoingGridView()静态方法
 
B窗口
        private void tsbSave_Click(object sender, EventArgs e)
        {
           AForm.LoingGridView()
        }
图片附件: 游客没有浏览图片的权限,请 登录注册

一改成静态方法以后就报dataGridView1为非静太字段或是什么错误的
2012-02-10 16:23
zhouz13
Rank: 2
等 级:论坛游民
帖 子:4
专家分:20
注 册:2010-4-6
收藏
得分:10 
一般情况下 ,不这么做。应该把B中的值传到A中,在A中操作。


A窗体中的代码
namespace WindowsFormsApplication1
{
    public partial class AForm : Form
    {
        public AForm()
        {
            InitializeComponent();
        }

        private void AForm_Load(object sender, EventArgs e)
        {
            LoingGridView();//调用GridView数据绑定方法
        }
        private void LoingGridView()//GridView数据绑定方法
        {
            SqlConnection conn = new SqlConnection("server=.;uid=sa;pwd=****;database=WHJLS_Wage");
            SqlDataAdapter sda = new SqlDataAdapter("select * from WHJLS_Login", conn);
            DataTable dt = new DataTable();
            sda.Fill(dt);
            dataGridView1.DataSource = dt;
        }

        private void tsbModify_Click(object sender, EventArgs e)//修改按钮
        {
            BForm b = new BForm(dataGridView1);
            if(b.ShowDialog()==DialogResult.OK)
            
                 //这里可以读取到你填写的值,然后你想怎么处理就怎么处理,比如:
                  string id=b.ID;
                  string user=b.User;
                  string pwd=b.pwd;
                 LoingGridView();//GridView数据绑定方法
            
        }
      
    }
}


B窗体中的代码
namespace WindowsFormsApplication1
{
    public partial class BForm : Form
    {
        public BForm(DataGridView dgv)
        {
            InitializeComponent();
            txtID.Text = dgv.SelectedCells[0].Value.ToString();
            txtUser.Text = dgv.SelectedCells[1].Value.ToString();
            txtPwd.Text = dgv.SelectedCells[2].Value.ToString();
        }
      
        private void BForm_Load(object sender, EventArgs e)
        {

        }

        //定义属性,取值
        Public string ID
        
            get{return txtID.Text;}
         
        Public string User
        
            get{return txtUser.Text;}
         
        Public string Pwd
        
            get{return txtPwd.Text;}
         
        private void tsbSave_Click(object sender, EventArgs e)//保存
        {
            this.DialogResult=DialogResult.OK
            
        }
    }
}
2012-02-10 16:26
wypdragon
Rank: 3Rank: 3
等 级:论坛游侠
帖 子:29
专家分:110
注 册:2011-11-19
收藏
得分:0 
以下是引用zw2864076在2012-2-10 16:23:22的发言:


一改成静态方法以后就报dataGridView1为非静太字段或是什么错误的

不好意思,没留意到这个,可以试下改成这样

A窗体中的代码
namespace WindowsFormsApplication1
{
    public partial class AForm : Form
    {
        public AForm()
        {
            InitializeComponent();
        }

        private void AForm_Load(object sender, EventArgs e)
        {
            LoingGridView();//调用GridView数据绑定方法
        }
        public void LoingGridView()//GridView数据绑定方法
        {
            SqlConnection conn = new SqlConnection("server=.;uid=sa;pwd=****;database=WHJLS_Wage");
            SqlDataAdapter sda = new SqlDataAdapter("select * from WHJLS_Login", conn);
            DataTable dt = new DataTable();
            sda.Fill(dt);
            dataGridView1.DataSource = dt;
        }

        private void tsbModify_Click(object sender, EventArgs e)//修改按钮
        {
            BForm b = new BForm(dataGridView1);
            b.Owner = this;   
            b.ShowDialog();
        }
      
    }
}


B窗体中的代码
namespace WindowsFormsApplication1
{
    public partial class BForm : Form
    {
        public BForm(DataGridView dgv)
        {
            InitializeComponent();
            txtID.Text = dgv.SelectedCells[0].Value.ToString();
            txtUser.Text = dgv.SelectedCells[1].Value.ToString();
            txtPwd.Text = dgv.SelectedCells[2].Value.ToString();
        }
      
        private void BForm_Load(object sender, EventArgs e)
        {

        }

        private void tsbSave_Click(object sender, EventArgs e)//保存
        {
            //请问一下如何在这里调用A窗体中的
            this.Owner.LoingGridView()//GridView数据绑定方法  
        }
    }
}

[ 本帖最后由 wypdragon 于 2012-2-13 15:17 编辑 ]
2012-02-12 11:33
zw2864076
Rank: 1
等 级:新手上路
帖 子:76
专家分:0
注 册:2007-6-16
收藏
得分:0 
6楼的兄弟回答是正确的谢谢,7楼我看到的代码是乱码呵呵,总之也谢谢你.多谢谢大家帮助
2012-02-13 09:02
快速回复:请教一下,如何跨窗体调用方法
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.037257 second(s), 8 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved