我的DataGridView里,第一列是checkbox。我想当DataGridView有多行被选中的时候,修改选中行中的任何一个checkbox,都把这些选中的checkbox的值统一设定。(DataGridVew里的行选择是FullRowSelect)
可是我发现很多事件中,selectedRows.Count都回到了1。。
我本来打算用的是CellContentClick事件可是多选状态下,我一按第一行的checkbox,事件里面SelectedRows.Count就变成了1原来的SelectdRows.Count有什么办法能取回来吗?
或者有什么好的办法解决?本来已经发在控件区,看这里人气旺,再发一个。希望各位帮忙。
可是我发现很多事件中,selectedRows.Count都回到了1。。
我本来打算用的是CellContentClick事件可是多选状态下,我一按第一行的checkbox,事件里面SelectedRows.Count就变成了1原来的SelectdRows.Count有什么办法能取回来吗?
或者有什么好的办法解决?本来已经发在控件区,看这里人气旺,再发一个。希望各位帮忙。
解决方案 »
- c#中使用正则表达式获取匹配内容
- C#多线程互斥访问文件
- 我想做一个串口接收GPS的的小程序,但是要如何完整接收GPS发过来的数据呢?
- 学GUI遇到的
- visual studio 2008可以配合.net framework一起用啊?怎么设置生成的时候是用哪一版的.net framework?
- TreeView控件中的相关问题
- 使用IMailboxStore的CreateMailbox方法创建Exchange2003邮箱时出错。
- 积分怎么弄啊?
- 通過webservice測試是否可以連接數據庫
- 求助,WPF中如何获取<DataTemplate>中的控件
- 关于foreach (DataRow dr in ds.Tables[0].Rows)
- 串口的消息处理事件与多线程
所以我想问问这种需求下,该在什么事件中能获取SelectedRows的值?
或者有什么好的解决方法
在复数行被选中的情况下,我点了其中某行的一个checkbox的单元格的时候
借助于DataGridView事件,因为事件发生的时候这个值已经变化,所以无法判断什么时机合适。
最简单的解决方法是点击外部的Button之类,在它们的Click事件中取这个值。
给个思路,看看吧
using System;
using System.Collections;
using System.Collections.Generic;
using System.Text;
using System.Windows.Forms;namespace WindowsApplication2
{
public class MyGridView:DataGridView
{
public ArrayList LastSelectedRows = new ArrayList();
protected override void OnSelectionChanged(EventArgs e)
{
if (LastSelectedRows.Count >= 2)
LastSelectedRows.RemoveAt(0);
ArrayList NowSelectedRows = new ArrayList();
for (int i = 0; i < this.SelectedRows.Count; i++)
{
NowSelectedRows.Add(this.SelectedRows[i].Index);
}
LastSelectedRows.Add(NowSelectedRows);
base.OnSelectionChanged(e);
}
}
//private MyGridView dataGridView1
private void dataGridView1_CellClick(object sender, DataGridViewCellEventArgs e)
{
MessageBox.Show((this.dataGridView1.LastSelectedRows[0] as ArrayList).Count.ToString());
//上次的值在这里了
}
}
DataGridViewSelectedRowCollection rowColl = ((DataGridView)sender).SelectedRows;