您的位置:首页 > 其它

mobile中使用vScrollBar解决DataGrid无滚动事件问题

2009-12-12 13:44 525 查看
mobile中的DataGrid没有提供滚动事件,在DataGrid数据编辑中将会遇到很多困扰。

下面提供一种间接方式处理DataGrid的滚动事件。(需设置vScrollBar的LargeChange为1,否则达不到预期效果)

在DataGrid右侧滚动条位置放置一个vScrollBar挡住DataGrid默认的滚动条
在DataGrid的数据绑定事件中设置vScrollBar的Maximum为DataGrid的数据行数
DataGrid的CurrentCellChanged事件中给vScrollBar的Value赋值为当前选中行的Index
vScrollBar的ValueChanged事件中给DataGrid的当前选中Index赋值为vScrollBar的Value

private void Form1_Load(object sender, EventArgs e)
{
vScrollBar.Value = 0;
vScrollBar.Minimum = 0;
vScrollBar.SmallChange = 1;
vScrollBar.LargeChange = 1;
vScrollBar.Enabled = false;
}

private void BindDataGrid(object sender, EventArgs e)
{
SqlCeConnection con = new SqlCeConnection(@"data source=\program files\db.sdf");
SqlCeDataAdapter da = new SqlCeDataAdapter("select * from table1", con);

DataSet ds = new DataSet();
da.Fill(ds);
dataGrid.DataSource = ds.Tables[0];

vScrollBar.Maximum = ds.Tables[0].Rows.Count - 1;
vScrollBar.Enabled = true;

}

private void dg_CurrentCellChanged(object sender, EventArgs e)
{
vScrollBar.Value = dataGrid.CurrentRowIndex;
}

private void vScrollBar_ValueChanged(object sender, EventArgs e)
{
dataGrid.CurrentRowIndex = vScrollBar.Value;
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐