在我的项目中,我想过滤一个datagridview。因此,通过右键单击所需的列,我会调用带有文本框的表单,该文本框会在我键入时过滤datadridview
但是当我开始在文本框中输入内容时,似乎没有任何作用
我的项目是MDI容器,主要形式是frm_Main
形式为frm_AC:
数据库连接代码:
OleDbConnection connAC = new OleDbConnection("Provider=Microsoft.Jet.OleDb.4.0;Data Source=" + @Application.StartupPath + "\\BDD_AC.mdb;Mode=Share Deny None");
OleDbDataAdapter adapter;
public static DataTable dtACCAS;
datagridview代码:
connAC.Open();
dtACCAS = new DataTable();
adapter = new OleDbDataAdapter("SELECT * FROM [tbl_ACCAS]", connAC);
adapter.Fill(dtACCAS);
new OleDbCommandBuilder(adapter);
dataGridView_TCAS.DataSource = dtACCAS;
connAC.Close();
打开包含文本框过滤器的表单:(frm_DGVfiltre)
void MFiltrer_Click(object sender, EventArgs e)
{
var frm_dgvfiltre = new frm_DGVFiltre(Cursor.Position);
frm_dgvfiltre.ShowDialog(this);
}
格式:frm_DGVfiltre:
private void textBox_FiltreSearch_TextChanged(object sender, EventArgs e)
{
DataView DV = new DataView(frm_AC.dtACCAS);
DV.RowFilter = string.Format(frm_AC.NomColonne + " LIKE '%{0}%'", textBox_FiltreSearch.Text);
((frm_AC)Owner).dataGridView_TCAS.DataSource = DV;
}
当我在文本框中键入内容时,发生错误: 不可能的类型的效果器,类型为“ Projet.frm_Main”,类型为“ Projet.frm_AC”。
英语翻译:
不能将类型为“ Projet.frm_Main”的对象转换为类型为“ Projet.frm_AC”。
代码有什么问题?
nb:datagridview设置为public。