C#WinForm 显示选中的行是第几行,datagridview控件
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了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
以上是关于C#WinForm 显示选中的行是第几行,datagridview控件的主要内容,如果未能解决你的问题,请参考以下文章
WPF 点击ListViewItem中的Button,如何获取选中的是第几行?