当前位置:文章写作网 >日记 >日记 >在datagridview中实现按F2调出帮助窗口

在datagridview中实现按F2调出帮助窗口

2009-03-30 10:23 作者:tshfang 阅读量:5549 推荐32次 | 我要投稿

为了能在datagridview中实现按F2键调出另外一个窗口,显示帮助信息,并且能够模糊查找。比如在录入凭证的时候,在科目列按F2键,在另一个窗口显示科目信息。 需要重写datagridview类,可以参照上篇文章,本文只把不同的地方写出来。

protected override bool ProcessCmdKey(ref System.Windows.Forms.Message msg, System.Windows.Forms.Keys keyData)

{

switch (keyData)

{

//回车键切换焦点,当焦点在第五列的时候,回车换行。

case System.Windows.Forms.Keys.Enter:

{

if (this.CurrentCell.ColumnIndex.ToString() == "4")

{

this.Rows.Add();

//焦点默认在新增行的第一列。

this.CurrentCell = this[0, this.CurrentCell.RowIndex];

}

//回车键切换焦点

else

{

System.Windows.Forms.SendKeys.Send("{TAB}");

}

break;

}

//F2键调出帮助窗口。

case System.Windows.Forms.Keys.F2:

{

if (this.CurrentCell.ColumnIndex.ToString() == "1")

{

//将焦点切换到下一个单元格。

this.CurrentCell = this[3, this.CurrentCell.RowIndex];

//mid共有静态变量,记载当前窗口第一列录入的内容。在帮助窗口中可以实现模糊查找。

//比如凭证录入,在科目那里录入1001,按F2以后,在帮助窗口显示的只是包含1001的科目。

//这是在帮助中的部分sql代码。可以实现按照编号或者名称模糊查找。

//string aaa = mygridview.mid;

//string sql = "select id as 编号,name as 科目名称 from kemu where mingxi=1 and (id //like '" + "%" + aaa + "%" + "' or name like '" + "%" + aaa + "%" + "')";

if (this[1, this.CurrentCell.RowIndex].Value == null)

mygridview.mid = "";

else mygridview.mid = this[1,this.CurrentCell.RowIndex].Value.ToString(); //显示帮助窗口。

kmhp ab = new kmhp();

ab.ShowDialog();

//sid,sname。共有静态变量,记载帮助窗口选择的内容。当在帮助窗口双击或者选择记录回车后

//将值付给当前datagridview的单元格。

this[1, this.CurrentCell.RowIndex].Value = sid;

this[2, this.CurrentCell.RowIndex].Value = sname;

}

}

return true;

}

return base.ProcessCmdKey(ref msg, keyData);

}

}

其他人在看啥

    《在datagridview中实现按F2调出帮助窗口》的评论 (共 0 条)

    • Guest::good