C#WinForm 显示选中的行是第几行,datagridview控件

1 UI

2 keyCode

 1         private void button3_Click_1(object sender, EventArgs e)
 2         {
 3             //不加1的话,选取第一行的时候提示0,第二行提示1,所以我加了一个1,方便看
 4             //为什么要加索引0,因为我有可能选取多行,这个时候该如何显示我选取的是第几行呢?
 5             //答案是按照你选取的顺序,输出你最后一个选中的是 第几行
 6             //例如我,选中 1 2 3行,3行是我最后一个选中的,所以输出3
 7             //        选中 10 2 1行,1行是我最后一个选中的,所以输出1
 8
 9             //在没有选择行的时候点这个按钮,会抛异常,有待解决
10             MessageBox.Show((dataGridView1.SelectedRows[0].Index + 1).ToString());
11         }

3 code

 1 using System;
 2 using System.Collections.Generic;
 3 using System.Linq;
 4 using System.Text;
 5 using System.Threading.Tasks;
 6
 7 namespace WindowsFormsApplication3
 8 {
 9     /// <summary>
10     /// xml文件内容匹配类
11     /// </summary>
12     public class User
13     {
14         private string _shengHao;
15         private string _password;
16
17         public string Password
18         {
19             get
20             {
21                 return _password;
22             }
23
24             set
25             {
26                 _password = value;
27             }
28         }
29
30         public string ShengHao
31         {
32             get
33             {
34                 return _shengHao;
35             }
36
37             set
38             {
39                 _shengHao = value;
40             }
41         }
42     }
43 }
  1 using System;
  2 using System.Collections.Generic;
  3 using System.ComponentModel;
  4 using System.Data;
  5 using System.Drawing;
  6 using System.Linq;
  7 using System.Text;
  8 using System.Threading.Tasks;
  9 using System.Windows.Forms;
 10 using System.Xml.Linq;
 11
 12 namespace WindowsFormsApplication3
 13 {
 14     public partial class Form1 : Form
 15     {
 16         public Form1()
 17         {
 18             InitializeComponent();
 19         }
 20
 21         private void Form1_Load(object sender, EventArgs e)
 22         {
 23             ShowXmlFile();
 24         }
 25
 26         private void ShowXmlFile()
 27         {
 28             List<User> datas = new List<User>();
 29             //form 窗体在加载的时候,读取xml文件
 30             XDocument xmlFile = XDocument.Load("1.xml");
 31             XElement root = xmlFile.Root;
 32
 33             foreach (var item in root.Elements())
 34             {
 35                 datas.Add(new User() { ShengHao = item.Element("ShengHao").Value, Password = item.Element("Password").Value });
 36             }
 37
 38             //将list数据与datagridview绑定
 39             dataGridView1.DataSource = datas;
 40
 41             //这行代码一开始是放在formload中的,但发现,每次增加新的数据之后,第一行都会被选中,所以
 42             //把这行代码加入到showxmlfile中
 43             dataGridView1.SelectedRows[0].Selected = false;
 44
 45         }
 46
 47         private void btnBook_Click(object sender, EventArgs e)
 48         {
 49
 50             User newUser = new User() { ShengHao = textNewShengHao.Text, Password = textNewPassword.Text };
 51
 52             XDocument xmlFile = XDocument.Load("1.xml");
 53             XElement root = xmlFile.Root;
 54
 55             //在根节点下新建一个子节点,名字叫“XianJia”
 56             XElement newXianJia = new XElement("XianJia");
 57             newXianJia.SetElementValue("ShengHao", newUser.ShengHao);
 58             newXianJia.SetElementValue("Password", newUser.Password);
 59             root.Add(newXianJia);
 60
 61             //保存
 62             xmlFile.Save("1.xml");
 63
 64             //为何防止用户,双击啥的,出现一堆重复的数据,所以在这里出现一个messagebox
 65             //我还发现,没有这个messagebox,虽然数据已经增加到了xml文件中,
 66             //但是那个datagridview控件却不显示新的,但是在重新运行这个程序的时候会显示
 67             //所以,一个messagebox贴心又省心
 68             MessageBox.Show("欢迎回家");
 69
 70             //让datagirdview控件显示新的xml文件中的内容
 71             ShowXmlFile();
 72         }
 73
 74         private void deleteMenuStrip_Click(object sender, EventArgs e)
 75         {
 76
 77         }
 78
 79         /// <summary>
 80         /// 点击这个按钮出现一个对话框,显示有多少行
 81         /// </summary>
 82         /// <param name="sender"></param>
 83         /// <param name="e"></param>
 84         private void button1_Click(object sender, EventArgs e)
 85         {
 86             //这个数字不包括列标题的那一行
 87             MessageBox.Show(dataGridView1.RowCount.ToString());
 88         }
 89
 90
 91         /// <summary>
 92         /// 点击这个按钮出现一个对话框,显示有多少行
 93         /// </summary>
 94         /// <param name="sender"></param>
 95         /// <param name="e"></param>
 96         private void button2_Click(object sender, EventArgs e)
 97         {
 98             //不包含行标题的那一列
 99             MessageBox.Show(dataGridView1.ColumnCount.ToString());
100         }
101
102
103         private void button3_Click_1(object sender, EventArgs e)
104         {
105             //不加1的话,选取第一行的时候提示0,第二行提示1,所以我加了一个1,方便看
106             //为什么要加索引0,因为我有可能选取多行,这个时候该如何显示我选取的是第几行呢?
107             //答案是按照你选取的顺序,输出你最后一个选中的是 第几行
108             //例如我,选中 1 2 3行,3行是我最后一个选中的,所以输出3
109             //        选中 10 2 1行,1行是我最后一个选中的,所以输出1
110
111             //在没有选择行的时候点这个按钮,会抛异常,有待解决
112             MessageBox.Show((dataGridView1.SelectedRows[0].Index + 1).ToString());
113         }
114     }
115 }

4 show

时间: 2024-12-26 06:31:24

C#WinForm 显示选中的行是第几行,datagridview控件的相关文章

C# DataGridView控件动态添加新行

C# DataGridView控件动态添加新行 DataGridView控件在实际应用中非常实用,特别需要表格显示数据时.可以静态绑定数据源,这样就自动为DataGridView控件添加相应的行.假如需要动态为DataGridView控件添加新行,方法有很多种,下面简单介绍如何为DataGridView控件动态添加新行的两种方法: 方法一: int index=this.dataGridView1.Rows.Add(); this.dataGridView1.Rows[index].Cells[

【机房重构】——使用DataGridView控件轻松显示数据(一)

在刚刚敲机房的时候遇到的问题就是DataGridView控件显示数据.好在被我解决了,好开心.下面分三部分来写这篇博客. 一.操作步骤 (1)新建一个WinForm窗体,在窗体中添加DataGridView控件,选中控件,点击控件上边缘的小三角,选择数据源,点击添加项目数据源. (2)选择数据源类型,此处应选数据库类型 (3)选择你的机房收费系统的数据连接,或新建连接,点击下一步. (4)根据你想要在窗体上显示的数据,选择数据库对象,包括要显示的列名后点击完成. (5)DataGridView控

WinForm DataGridView控件、duck布局

1.DataGridView控件 显示数据表 (1)后台数据绑定: List<xxx> list = new List<xxx>(); dataGridView1.DataSource = list; //设置不自动生成列,此属性在属性面板中没有 dataGridView1.AutoGenerateColumns = false; //取消加载默认选中第一行 dataGridView1.ClearSelection(); (2)前台: 小三角箭头,取消可编辑,添加,删除功能: Co

DataGridView控件选中单元格、直接在控件中修改信息

                                                           原文取自个人博客:www.jycoder.com欢迎访问 一,获取DataGridView控件中的当前单元格 若要与DataGridView进行交互,通常要求用编程的方式发现哪个单元格出于活动状态.如果需要更改单元格,可通过DataGridView控件的CurrentCell属性来获取当前单元格的信息: 语法如下: Public DataGridViewCell CurrentC

一个Winform下DataGridView控件外观的自定义类

一.关于起因 最近非常频繁的使用DataGridView控件,VS提供的Winform下DataGridView的默认样式非常难看.如果做美化处理的话,需要调整的地方非常多,且该控件的很多设置属性非常的晦涩,不是很人性化.每次进行设置都煞费脑筋,并且需要设置的DataGridView控件又比较多,如果手工一个一个调整非常麻烦.如果在每个窗体里逐个一行一行的用代码来设置,会造成代码很凌乱.琐碎,因此我对DataGridView格式设置的常用项封装到一个Helper类,通过这个帮助类可以一步到位完成

Winform 中DataGridView控件添加行标题

有很多种方法. 1.可以在DataGridView控件中的RowStateChanged事件改变行标题单元格的值(Row.HeaderCell.Value) 1 /// <summary> 2 /// 行状态更改时发生 3 /// </summary> 4 /// <param name="sender"></param> 5 /// <param name="e"></param> 6 pri

定制progrebar-如何让控件在2.x系统里显示holo风格(4.x系统下的控件风格)

定制progrebar,这里以progrebar(small)为例,使之在2.x系统里显示holo风格. 1)找到系统文件styles.xml 和themes.xml. 在目录adt-bundle\sdk\platforms\android-19\data\res\values下找到styles.xml和  themes.xml,用Uedit打开: 2) 在系统的styles.xml中搜索控件名称progrebar,找到 "  <style name="Widget.Holo.P

C# DataGridView控件 动态添加新行

DataGridView控件在实际应用中非常实用,特别需要表格显示数据时.可以静态绑定数据源,这样就自动为DataGridView控件添加相应的行.假如需要动态为DataGridView控件添加新行,方法有很多种,下面简单介绍如何为DataGridView控件动态添加新行的两种方法: 方法一: int index=this.dataGridView1.Rows.Add(); this.dataGridView1.Rows[index].Cells[0].Value = "1"; thi

c#如何将子窗体显示到父窗体的容器(panel)控件中

如何将一个窗体显示到一个容器控件中,刚开始想的比较简单,用窗体容器控件添加一般控件的方法,试了一试,代码如下: Form2 frm = new Form2(); this.panel1.Controls.Add(frm); frm.Show(); 但是提示了一个错误:无法将顶级控件添加到控件. 原来窗体是一个顶级控件,是无法将一个顶级控件添加到一个容器中来的.最后在网上找了相关资料,只需要将代码改下即可,还是原来的思路,代码如下: Form2 frm = new Form2(); frm.Top