سلام ، برای جستجو در Datagridview باید از متد RowFilter کلاس DataView استفاده کنید. مثال های زیادی می تونید پیدا کنید :
(dataGridView.DataSource as DataTable).DefaultView.RowFilter = string.Format("Field = '{0}'", textBoxFilter.Text);
سوال دوم : با یک دستور for و if می تونید به راحتی اینکار رو انجام بدین ( البته با Linq و... هم میشه ) ولی به نظر بنده یکی از ساده ترین هاش همین روش هست :
for (int i = 0; i < this.dataGridView1.Rows.Count; i++)
{
if (this.dataGridView1.Rows[i].Cells[0].Value != null)
{
string value = this.dataGridView1.Rows[i].Cells[0].Value.ToString();
if (!this.comboBox1.Items.Contains(value))
{
this.comboBox1.Items.Add(value);
}
}
}