PS: I already have a TextBox & a DataGridView on the form.
public partial class LookupTable : Form
{
  // This will be the data source of the DataGridView.
  BindingSource oBindingSource = new BindingSource();
  CallerDTO caller = null;
 
  public LookupTable(DataTable sourceData, CallerDTO sourceDTO)
  {
    InitializeComponent();
    caller = sourceDTO;
 
    // Assign the DataTable to our BindingSource object.
    oBindingSource.DataSource = sourceData;
  }
 
  private void LookupTable_Load(object sender, EventArgs e)
  {
    toolTipFind.SetToolTip(textBoxFind, "You can search by Name or by Code.");
 
    // Assign the BindingSource object to the DataGridView.
    dataGridViewResult.DataSource = oBindingSource;
  }
 
  private void textBoxFind_TextChanged(object sender, EventArgs e)
  {
    TextBox oTextBox = sender as TextBox;
 
    // Here is the key of the whole "Search As You Type" function.
    oBindingSource.Filter = "NAME LIKE '%" + oTextBox.Text + "%' OR CODE LIKE '%" + oTextBox.Text + "%'";
  }
 
  private void dataGridViewResult_CellContentDoubleClick(object sender, DataGridViewCellEventArgs e)
  {
    // Here I need to send back the value that user clicked on.
    caller.StringResult = dataGridViewResult.Rows[e.RowIndex].Cells[1].Value.ToString();
 
    // This is just a public method for me to do something after user clicking.
    caller.CallerLoad();
    this.Close();
  }
}Result:
No comments:
Post a Comment