int GetScrollPos( HWND hWnd, // handle of window with scroll bar int nBar // scroll bar flags ); int SetScrollPos( HWND hWnd, // handle of window with scroll bar int nBar, // scroll bar flag int nPos, // new position of scroll box BOOL bRedraw // redraw flag );
int GetScrollPos(
HWND hWnd, // handle of window with scroll bar
int nBar // scroll bar flags
);
int SetScrollPos(
HWND hWnd, // handle of window with scroll bar
int nBar, // scroll bar flag
int nPos, // new position of scroll box
BOOL bRedraw // redraw flag
);
这位朋友误会了, 我的panel和DataGridView位置不在一起,DataGridView在左边, panel在DataGridView的右边, panel里面存放是一些其他信息
, 现在要求二个滚动条进行联动
不好意思,没写清楚 是winform
不好意思,没写清楚 是winform
额,这位大哥,是winform 咯,
private void dataGridView1_Scroll(object sender, ScrollEventArgs e)
{
if (e.ScrollOrientation == ScrollOrientation.VerticalScroll)
{
int a = e.OldValue;
int b = e.NewValue;
dataGridView2.FirstDisplayedScrollingRowIndex = b;
}
}另外需要:增加"向上""向下"键盘的事件处理.
private void dataGridView1_KeyUp(object sender, KeyEventArgs e)
{
if (e.KeyCode.Equals(Keys.Up)||e.KeyCode.Equals(Keys.Down))
{
for (int ii = 0; ii < dataGridView1.Rows.Count; ii++)
{
if (dataGridView1.Rows[ii].Selected)
{
//通过fieldID关联1,2. 项目需要
string fieldID = this.dataGridView1.Rows[ii].Cells[0].Value.ToString(); int b = -1; for (int i = 0; i < dataGridView2.Rows.Count; i++)
{
if (dataGridView2.AllowUserToAddRows == true && dataGridView2.Rows[i].IsNewRow == true)
{
continue;
}
b = b + 1;
string fieldID2 = dataGridView2.Rows[i].Cells[0].Value.ToString();
if (fieldID2.Equals(fieldID))
{
dataGridView2.Rows[i].Selected = true;
}
else
{
if (b < 0) b = 0;
if (b >= dataGridView2.Rows.Count) b = dataGridView2.Rows.Count - 1;
dataGridView2.Rows[b].Selected = false;
}
}
}
}
}
}
dataGridView2.FirstDisplayedScrollingRowIndex = b; 看不懂 出错……