我有一个DataGridView。我想做这个;我会用一个文本框。在填充DataGridView之后,我将用一个单词填充我的文本框,如果我的DataGridView的任何行包含这个单词,我将这些行导出到新的DataGridView。让我解释。我的DataGridView看起来像那样;
Column1 Column2 Column3
-------------------------------------------------------------------
albania algeria 800 55.32
antarctica argentina 950
brazil bulgaria 25 77
india indonesia 30000 78.53
argentina iran 18 0.01
moldova mongolia 25854 77.50
想象一下,我有一个文本框。假设我在文本框中写了阿根廷语。在这个操作之后,我的新DataGridView看起来像那样;
Column1 Column2 Column3
------------------------------------------------------------------
antarctica argentina 950
argentina iran 18 0.01
注意:抱歉,我无法提出任何想法。
假设您确实需要两个DataGridViews:
private void button2_Click(object sender, System.EventArgs e)
{
dataGridView2.Rows.Clear();
var filterText = textBox1.Text;
foreach (DataGridViewRow row in dataGridView1.Rows)
{
if (Convert.ToString(row.Cells[0].Value).Contains(filterText))
{
var filteredRow = (DataGridViewRow)row.Clone();
//Copy values from one DataGridViewRow to another
foreach (DataGridViewCell cell in row.Cells)
{
filteredRow.Cells[cell.ColumnIndex].Value = cell.Value;
}
dataGridView2.Rows.Add(filteredRow);
}
}
}
你可以这样做:
ConvertGridToTable(); // Add data in Datatabledt from gridview
Clipboard.Clear();
DataObject data = new DataObject(DataFormats.Serializable, Datatabledt);
Clipboard.SetDataObject(data);
现在,在剪贴板中可以使用Datatabledt,您可以将其粘贴到第二个gridview中,您可以使用它来执行此操作:
DataObject data = (DataObject)Clipboard.GetDataObject();
DataTable dt = (DataTable)data.GetData(DataFormats.Serializable);
foreach (DataRow dr in dt.Rows)
{
dtData.ImportRow(dr);
}
dtData.AcceptChanges();
grdProgramData.DataSource = dtData;
MessageBox.Show("Data Pasted.");
private void ConvertGridToTable()
{
if (Datatabledt.Rows.Count > 0)
{ }
Datatabledt = dtData.Clone();
foreach (DataGridViewRow gr in YOURGRIDVIEW.SelectedRows)
{
DataRow dc = Datatabledt.NewRow();
dc["KEY-FIELD"] = Int32.Parse(gr.Cells[0].Value.ToString());
.....
---you can set your conditions here on the basis of textbox value---
Datatabledt.Rows.Add(dc);
}
Datatabledt.AcceptChanges();
}