请问c# 的winform 怎么获取 datagridview选中的行数和列数啊

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了请问c# 的winform 怎么获取 datagridview选中的行数和列数啊相关的知识,希望对你有一定的参考价值。

获取总行数:dataGridView1.Rows.Count;

获取当前选中行索引:int i = this.dataGridView1.CurrentRow.Index;

获取当前选中列索引:int j = this.dataGridView1.CurrentCell.ColumnIndex;

DataGridView的几个基本操作:

1、获得某个(指定的)单元格的值:

dataGridView1.Row[i].Cells[j].Value;

2、获得当前选中行的索引:

dataGridView1.CurrentRow.Index;

3、获得当前选中单元格的值:

dataGridView1.CurrentCell.Value;


扩展资料

通过DataGridView控件,可以显示和编辑表格式的数据,而这些数据可以取自多种不同类型的数据源。

DataGridView控件具有很高的的可配置性和可扩展性,提供了大量的属性、方法和事件,可以用来对该控件的外观和行为进行自定义。当你需要在WinForm应用程序中显示表格式数据时,可以优先考虑DataGridView(相比于DataGrid等其它控件)。

如果要在小型网格中显示只读数据,或者允许用户编辑数以百万计的记录,DataGridView将提供一个易于编程和良好性能的解决方案。

DataGridView 用来替换先前版本中的DataGrid,拥有较DataGrid更多的功能;但DataGrid仍然得到保留,以备向后兼容和将来使用。如果要在两者中选择,可以参考下面给出的DataGrid 和DataGridView之间区别的细节信息。

参考资料来源:

百度百科——DataGridView

参考技术A //这是用鼠标从左上到右下方式选取的情况
int cellsCount = dataGridView1.SelectedCells.Count;
int c1 = (dataGridView1.SelectedCells[cellsCount-1].ColumnIndex);
int r1 = (dataGridView1.SelectedCells[cellsCount-1].RowIndex);
int c2 = (dataGridView1.SelectedCells[0].ColumnIndex);
int r2 = (dataGridView1.SelectedCells[0].RowIndex);
Console.WriteLine("选择了:第 0 列第 1 行 -- 第 2 列第 3 行",c1,r1,c2,r2);
参考技术B 你是想获取总行数?还是选中行和列的索引?
获取总行数:dataGridView1.Rows.Count;
获取当前选中行索引:int i = this.dataGridView1.CurrentRow.Index;
获取当前选中列索引:int j = this.dataGridView1.CurrentCell.ColumnIndex;本回答被提问者和网友采纳
参考技术C 行数:int i = this.dataGridView1.CurrentRow.Index;
列数:int j = this.dataGridView1.CurrentCell.ColumnIndex;
这个是没错的 但是需要你确定当前你已经选行/列了
写代码的话 判断下this.dataGridView1.CurrentRow和this.dataGridView1.CurrentCell是否是null 如果是null提示 让他去选择行/列
参考技术D 行数:int i = this.dataGridView1.CurrentRow.Index;
列数:int j = this.dataGridView1.CurrentCell.ColumnIndex;

C# winform listview 选中的复选框排序

请问如何做到,点击按钮button1后,数据3那项排到数据1的上边并且让复选框选中,如下图

  ListView本身提供了ListViewItemSorter属性让用户实现自定义的排序。

  增加以下代码可以实现你要的功能。

 public class ListViewSorterAscending : System.Collections.IComparer
        
            public int Compare(object x, object y)
            
                //我们需要的是先对所有已选中的项目进行升序排列,然后对未选中的项目进行升序排列
                ListViewItem c1 = x as ListViewItem;
                ListViewItem c2 = y as ListViewItem;
                if (c1.Checked && c2.Checked || !c1.Checked && !c2.Checked)
                    return c1.Text.CompareTo(c2.Text);
                if (c1.Checked && !c2.Checked)
                    return -1;
                if (!c1.Checked && c2.Checked)
                    return 1;
                return 0;
            
        


  在某处生成排序器的一个实例,赋值ListView的排序比较器属性:

myListView.ListViewItemSorter = new ListViewSorterAscending();


  在Button的Click事件中写:

mylistView.Sort();


  需要反向排序请自行改动排序器。

备注:本例排序中参考值是Item的Text属性,如需使用其他的属性进行排序请自行修改。

参考技术A 你这个应该是硬编码的问题。如果实现排序的话,可以实现IComparer接口,但这并不能保证3在上面。而且ICompare你实现的排序还要去自己处理,数字的排序和字符串的排序肯定不一样的。

就你题目而言,最简单的放法就是
private List<ListViewItem> lvis = new List<ListViewItem>();
private void Form1_Load(object sender, EventArgs e)

ListViewItem lvi = new ListViewItem(new string[] "数据1", "1", "2" );
ListViewItem lvi1 = new ListViewItem(new string[] "数据2", "3", "4" );
ListViewItem lvi2 = new ListViewItem(new string[] "数据3", "5", "6" );
this.listView1.Items.Add(lvi);
this.listView1.Items.Add(lvi1);
this.listView1.Items.Add(lvi2);
lvis.Add(lvi);
lvis.Add(lvi1);
lvis.Add(lvi2);

private void button1_Click(object sender, EventArgs e)

//先listview1清空
this.listView1.Items.Clear();
//绑定勾选的
for (int i = 0; i < lvis.Count; i++)

if (lvis[i].Checked)

this.listView1.Items.Add(lvis[i]);
lvis.Remove(lvis[i]);
break;


//绑定其他的
for (int i = 0; i < lvis.Count; i++)

this.listView1.Items.Add(lvis[i]);

//listview的item继续存入lvis
lvis.Clear();
for (int i = 0; i < this.listView1.Items.Count; i++)

lvis.Add(this.listView1.Items[i]);

参考技术B

把整个项目代码发我看看

1720406057@qq.com

以上是关于请问c# 的winform 怎么获取 datagridview选中的行数和列数啊的主要内容,如果未能解决你的问题,请参考以下文章

C# winform listview 选中的复选框排序

请问Winform里面怎么单击按钮来改变窗体背景图片?(C#)

我用C# winform多线程,窗口就假死,等到线程全部完成了才可以点击。请问要怎么才可以让窗口不假死。

请问C# Winform项目中子类的事件被触发时,怎么跨类更新UI。

C# 下winform代码调用windows自带的图片查看器查看本地图片可以,请问下查看远程图片怎么写,求代码

C# winform中以excel的方式编辑表格