是的,我有一个用Visual Studio C#制作的事件驱动的Windows窗体项目。这是我从头开始制作的电话日记。它实际上工作正常,但我只是想为用户添加另一个功能。
用户输入联系人,想要将详细信息添加到datagridview。他们可以添加,在程序运行时根据需要编辑,可以从excel文件中添加(导入)更多人,然后可以导出它到一个新的Excel文件。因此,没有任何东西保存到程序中,他们想要做的一切都必须在程序运行期间发生,并根据需要导出到新的excel文件。
所以一切正常但我想让用户搜索程序中的当前数据网格(dataGridView1)(应用内),我无法弄清楚如何。
我知道用户可以对列升序/降序进行排序(这是数据网格的内置功能),但我想进行特定的文本搜索。我不想制作一个MySqlConnection以及所有这些,我只是想能够,比如说,进入搜索按钮并对其进行编程(点击)只搜索searchTextBox等于任何值的地方我的dataGridView1的单元格,只显示那些结果。
不确定为何如此难以找到,是否可能?我认为这很简单,但我还没有找到如何做到这一点。下面是我现在申请的图片。此外,如果你碰巧有任何想法,如何使用户更好,这将是很好的。 (:
答案 0 :(得分:6)
试试看,看看,
private void searchbutton_Click(object sender, EventArgs e)
{
string searchValue = searchtextBox.Text;
dataGridView1.SelectionMode = DataGridViewSelectionMode.FullRowSelect;
try
{
bool valueResult = false;
foreach (DataGridViewRow row in dataGridView1.Rows)
{
for (int i = 0; i < row.Cells.Count; i++)
{
if (row.Cells[i].Value != null && row.Cells[i].Value.ToString().Equals(searchValue))
{
int rowIndex = row.Index;
dataGridView1.Rows[rowIndex].Selected = true;
valueResult = true;
break;
}
}
}
if (!valueResult)
{
MessageBox.Show("Unable to find " + searchtextBox.Text, "Not Found");
return;
}
}
catch (Exception exc)
{
MessageBox.Show(exc.Message);
}
}