如何添加行到另一个窗体上的datagridview [英] How to add row to datagridview situated on another form

查看:213
本文介绍了如何添加行到另一个窗体上的datagridview的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我有两种形式应用。我在MainForm上有三个字符串列的datagrid。
第二个表单的目的地是向这个datagrid添加一些参数,如1,2和3列的文本



此代码工作

  private void MainForm_Load(object sender,EventArgs e)
{
dgvTasks.Rows.Add(s1 ,s2,s3);
}

但是当我将此代码放到另一个表单上时工作

  //MainForm
public void addRowToDataGridView(string type,string title,string time )
{
dgvTasks.Rows.Add(type,title,time);
}

//ParametersForm
public static MainForm fm = new MainForm();
private void BtnSave_Click(object sender,EventArgs e)
{
fm.addRowToDataGridView(s1,s2,s3);
}

没有错误。只是沉默,行不添加。
可以帮助我吗?

解决方案

MainForm fm = new MainForm();



这样,当您为MainForm创建实例对象时,您创建了另一个MainForm。



您应该获得有效的MainForm。所以你应该保持活动的MainForm实例。

  //MainForm

public static MainForm MainFormRef {get;私人集合}
public Form1()
{
InitializeComponent();
MainFormRef = this;
}

public void addRowToDataGridView(string type,string title,string time)
{
dgvTasks.Rows.Add(type,title,time);
}


//ParametersForm
private void btnSave_Click(object sender,EventArgs e)
{
var fm = MainForm。 MainFormRef;
fm.addRowToDataGridView(s1,s2,s3);
}


i have two form applictaion. and i have datagrid with three string columns on the "MainForm". the destination of the second form is to add rows to this datagrid with some parametres such as text of the 1,2 and 3 columnns

this code works

private void MainForm_Load(object sender, EventArgs e)
{
  dgvTasks.Rows.Add("s1", "s2", "s3");
}

but when i drop this code to another form it doesn't work

//"MainForm"
public void addRowToDataGridView(string type, string title, string time)
{
  dgvTasks.Rows.Add(type, title, time);
}

//"ParametersForm"
public static MainForm fm = new MainForm();
private void btnSave_Click(object sender, EventArgs e)
{
  fm.addRowToDataGridView("s1", "s2", "s3");
}

no errors. just silent and rows don't add. can smb help me?

解决方案

MainForm fm = new MainForm();

This way , You created another MainForm when you create instance object for MainForm.

You should attain active MainForm. So you should hold the active MainForm instance.

//"MainForm"

public static MainForm MainFormRef { get; private set; }
public Form1()
{
    InitializeComponent();
    MainFormRef = this;
}

public void addRowToDataGridView(string type, string title, string time)
{
  dgvTasks.Rows.Add(type, title, time);
}


//"ParametersForm"
private void btnSave_Click(object sender, EventArgs e)
{
  var fm = MainForm.MainFormRef;
  fm.addRowToDataGridView("s1", "s2", "s3");
}

这篇关于如何添加行到另一个窗体上的datagridview的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆