C# 填充DataGridView
我在C# 填充DataGridView,c#,winforms,datagridview,C#,Winforms,Datagridview,我在Form1上有一个DataGridView。我需要用其他类/方法中的特定方法填充Dgv,但我无法访问它,我需要帮助 DataGridView的名称是DataConsole 以下是推广Dgv需要使用的方法: public static void addrow(string modo, string acao, string info, int tipo_msg, string msg, string extra, int
Form1
上有一个DataGridView。我需要用其他类/方法中的特定方法填充Dgv,但我无法访问它,我需要帮助
DataGridView的名称是DataConsole
以下是推广Dgv需要使用的方法:
public static void addrow(string modo, string acao, string info, int tipo_msg, string msg,
string extra, int tipo_extra, string origem, string fase_origem, string metodo)
{
int idrow = DataConsole.Rows.Add();
using (DataGridViewRow row = DataConsole.Rows[idrow])
{
row.Cells["dg_data"].Value = DateTime.Now;
row.Cells["dg_modo"].Value = modo;
row.Cells["dg_acao"].Value = acao;
row.Cells["dg_info"].Value = info;
row.Cells["dg_tipo"].Value = tipo_msg;
row.Cells["dg_msg"].Value = msg;
row.Cells["dg_extra"].Value = extra;
row.Cells["dg_TipoExtra"].Value = tipo_extra;
row.Cells["dg_origem"].Value = origem;
row.Cells["dg_FaseOrigem"].Value = fase_origem;
row.Cells["dg_metodo"].Value = metodo;
}
}
您可以使用DataSource实现这一点,它比向网格中添加或更新任何GrdiRow更简单、更快。 可以找到有关数据源的更多详细信息。
另外,我建议您通过数据源本身获取和设置数据。您可以使用数据源,它比向网格添加或更新任何GrdiRow更简单、更快。 可以找到有关数据源的更多详细信息。
另外,我建议您通过数据源本身获取和设置数据。选项1 在类方法中为DataGridView类型的
DataConsole
添加一个参数,并将其作为参数传递给调用方
publicstaticvoidaddrow(
DataGridView dgv,
串模多,
弦阿考,
字符串信息,
内蒂波乌酒店,
串味精,
额外的字符串,
国际提波乌酒店,
弦宝石,
字符串为原始格式,
字符串(metodo)
{
var idrow=dgv.Rows.Add();
var行=dgv.行[idrow];
row.Cells[“dg_data”].Value=DateTime.Now;
行。单元格[“dg_modo”]。值=modo;
行。单元格[“dg_acao”]。值=acao;
行单元格[“dg_信息”]。值=信息;
行单元格[“dg_tipo”]。值=tipo_msg;
行单元格[“dg_msg”]。值=msg;
行单元格[“dg_额外”]。值=额外;
行单元格[“dg_TipoExtra”]。值=tipo_额外值;
行。单元格[“dg_origem”]。值=origem;
行单元格[“dg_FaseOrigem”]。值=fase_origem;
行。单元格[“dg_metodo”]。值=metodo;
}
然后您可以从frm\u控制台
调用该方法,如下所示:
公共部分类frm_控制台:表单
{
//...
私人无效调用方()
{
addrow(DataConsole,//其余参数….);
}
}
选项2
将DataConsole
控件的Modifiers
属性设置为Public或Internal,在类方法中找到它的容器形式,然后访问它:
publicstaticvoidaddrow(
串模多,
弦阿考,
字符串信息,
内蒂波乌酒店,
串味精,
额外的字符串,
国际提波乌酒店,
弦宝石,
字符串为原始格式,
字符串(metodo)
{
var f=Application.OpenForms.OfType().FirstOrDefault();
如果(f==null)返回;
var idrow=f.DataConsole.Rows.Add();
var row=f.DataConsole.Rows[idrow];
row.Cells[“dg_data”].Value=DateTime.Now;
行。单元格[“dg_modo”]。值=modo;
行。单元格[“dg_acao”]。值=acao;
//……等等。
}
选项3
在DataGridView类型的方法类中声明一个静态变量,在frm\u Console
construcor中将其设置为DataConsole
公共类SomeClass
{
公共静态DataGridView DataConsole;
公共静态void addrow(
串模多,
弦阿考,
字符串信息,
内蒂波乌酒店,
串味精,
额外的字符串,
国际提波乌酒店,
弦宝石,
字符串为原始格式,
字符串(metodo)
{
如果(DataConsole==null)返回;//或引发异常。。。
var idrow=DataConsol.Rows.Add();
var row=数据控制台行[idrow];
row.Cells[“dg_data”].Value=DateTime.Now;
行。单元格[“dg_modo”]。值=modo;
行。单元格[“dg_acao”]。值=acao;
//……等等。
}
}
公共部分类frm_控制台:表单
{
公共frm_控制台()
{
初始化组件();
SomeClass.DataConsol=this.DataConsole;
}
//...
}
选项4
将DataConsole相关例程保存在控件所属的
frm_控制台中。选项1
在类方法中为DataGridView类型的DataConsole
添加一个参数,并将其作为参数传递给调用方
publicstaticvoidaddrow(
DataGridView dgv,
串模多,
弦阿考,
字符串信息,
内蒂波乌酒店,
串味精,
额外的字符串,
国际提波乌酒店,
弦宝石,
字符串为原始格式,
字符串(metodo)
{
var idrow=dgv.Rows.Add();
var行=dgv.行[idrow];
row.Cells[“dg_data”].Value=DateTime.Now;
行。单元格[“dg_modo”]。值=modo;
行。单元格[“dg_acao”]。值=acao;
行单元格[“dg_信息”]。值=信息;
行单元格[“dg_tipo”]。值=tipo_msg;
行单元格[“dg_msg”]。值=msg;
行单元格[“dg_额外”]。值=额外;
行单元格[“dg_TipoExtra”]。值=tipo_额外值;
行。单元格[“dg_origem”]。值=origem;
行单元格[“dg_FaseOrigem”]。值=fase_origem;
行。单元格[“dg_metodo”]。值=metodo;
}
然后您可以从frm\u控制台
调用该方法,如下所示:
公共部分类frm_控制台:表单
{
//...
私人无效调用方()
{
addrow(DataConsole,//其余参数….);
}
}
选项2
将DataConsole
控件的Modifiers
属性设置为Public或Internal,在类方法中找到它的容器形式,然后访问它:
publicstaticvoidaddrow(
串模多,
弦阿考,
字符串信息,
内蒂波乌酒店,
串味精,
额外的字符串,
国际提波乌酒店,
弦宝石,
字符串为原始格式,
字符串(metodo)
{
var f=Application.OpenForms.OfType().FirstOrDefault();
如果(f==null)返回;
var idrow=f.DataConsole.Rows.Add();
var row=f.DataConsole.Rows[idrow];
row.Cells[“dg_data”].Value=DateTime.Now;
行。单元格[“dg_modo”]。值=modo;
行。单元格[“dg_acao”]。值=acao;
//……等等。
}
选项3
在DataGridView类型的方法类中声明一个静态变量,将其设置为t
class RowData
{
public string Modo {get; set;}
public string Acao {get; set;}
...
}
DataGridView dataConsole = new DataGridView();
DataGridViewColumn columnModo = new DataGridViewColumn(){...}
DataGridViewColumn columnAcao = new DataGridViewColumn(){...}
... // create other columns
dataConsole.Columns.Add(columnModo);
dataConsole.Columns.Add(columnAcao);
... // add other columns
// The data that will be as rows in your table:
BindingList<RowData> dataConsoleContent = new BindingList<RowData>();
List<RowData> initialData = ...
BindingList<RowData> dataConsoleContent = new BindingList<RowData>(initialData);
dataConsole.DataSource = dataConsoleContent;
RowData newRow = dataConsoleContent.AddNew();
// if you have data: just fill it
newRow.Modo = ...
newRow.Acao = ...
...
dataConsoleContent.ResetBinding().
private void OnButtonFinishedEditing_Clicked(object sender, ...)
{
IEnumerable<DataRow> allDataRows = this.dataConsoleContent;
ProcessEditedData(allDatarows);
}
List<Customer> customers = GetCustomers();
BindingListView<Customer> view = new BindingListView<Customer>(customers);
dataGridView1.DataSource = view;
DateTime dateLimit = DateTime.Now - TimeSpan.FromYears(65);
view.ApplyFilter(customer => customer.Birthday < dateLimit});