我找了一下CSDN,当List的滚动时需要WndProc的事件。但是由于最近工期紧张,没时间做那么多的研究了。我把我的需求说一下,求一段代码完成这个操作。我有2个ListView,左边和右边的。大小都相同。当我滚动其中一个的垂直滚动条的时候,另外一个也滚动到相应的位置。不知道好实现不?
解决方案 »
- (winform)禁用Ctrl+Alt+Del热键
- 关于SqlCommand的用法?求解释。
- C# 调用WORD,怎么样可以隐藏窗体?
- 检测网络上某程序的新版本,有新版本就自动下载?急!
- winform c# listView鼠标拖拽的问题
- 可以在Win Form中加入script引用吗?
- 请问各位专家,无法将类型"string"隐式转换为"bool",怎么办?
- 公司的一个任务的要求,理不出头绪,请大家帮忙看看能不能用C#实现,先谢了!
- 添加文本框事件
- 在C#中名称空间名是否要与存放的目录同名(就象JAVA那样)?类名是否要与文件名相同?
- 请问哪位知道用webBrowser 或AxWebBrowser怎么样显示贴子的内容吗?有没有类似的例子源码或webBrowser,AxWebBrowser的相关资料也行,能否
- 如何將數據庫中某一列數據查詢后顯示在richtextbox中,即richtextbox如何綁定數據庫的數據
private ArrayList arr = new ArrayList();//用来存储要显示的行数据
public Form20()
{
InitializeComponent();
listView1.VirtualMode = true; //设置虚模式
listView2.VirtualMode = true;
listView1.VirtualListSize = 20; //设置显示大小,根据需要你自己改变
listView2.VirtualListSize = 20;
}
2、初始化值:
private void Form20_Load(object sender, EventArgs e)
{
string[] s = new string[5];
for (int i = 0; i < 40; i++)
{
s[0] = "ddd";
s[1] = "33";
s[2] = "sdfsdfsd";
s[3] = "56536456";
s[4] = "56536456";
ListViewItem item = new ListViewItem(s);
arr.Add(item);
//listView1.Items.Add(item);//不能在此添加
//listView2.Items.Add(item);//不能在此添加
}
}
3、事件响应:
private void listView1_CacheVirtualItems(object sender, CacheVirtualItemsEventArgs e)
{//关键是这个事件
listView2.EnsureVisible(e.EndIndex);
} private void listView1_RetrieveVirtualItem(object sender, RetrieveVirtualItemEventArgs e)
{
e.Item = (ListViewItem)arr[e.ItemIndex];
//每次显示项,根据VirtualListSize 的值而变化
} private void listView2_RetrieveVirtualItem(object sender, RetrieveVirtualItemEventArgs e)
{
e.Item =(ListViewItem)arr[e.ItemIndex];
}