应用场景
对datagridview控件使用了解,以及操作datagridview选中的信息删除,并且有二次确认后才删除用户信息。相应的删除listbox中用户信息,下面一起看看需要哪些准备?
开发环境
开发工具:Microsoft Visual Studio 旗舰版、SQL Server 2008.
开发环境:.NET Framework 4 Client Profile.
实现步骤
1、搭建MVC框架、建立PERSON_T表格;
首先,了解什么是MVC框架,MVC全名是Model View Controller,是模型(model)-视图(view)-控制器(controller)的缩写,一种软件设计典范,用于组织代码用一种业务逻辑和数据显示分离的方法,这个方法的假设前提是如果业务逻辑被聚集到一个部件里面,而且界面和用户围绕数据的交互能被改进和个性化定制而不需要重新编写业务逻辑MVC被独特的发展起来用于映射传统的输入、处理和输出功能在一个逻辑的图形化用户界面的结构中。
我在VS项目中建立一个目录如下图:
然后,在SQL2008中FMSDB数据库中建立PERSON_T表;具体代码见下方:
USE [FMSDB] GO /****** Object: Table [dbo].[PERSON_T] Script Date: 07/30/2013 15:47:33 ******/ SET ANSI_NULLS ON GO SET QUOTED_IDENTIFIER ON GO CREATE TABLE [dbo].[PERSON_T]( [NAME] [nvarchar](50) NULL, [AGE] [int] NULL ) ON [PRIMARY] GO
2、创建DataGridView后配置
DataGridView控件具体配置
AllowUserToAddRows改为false
AutoSizeColumnsMode改为Fill
ColumnHeadersVisible
Dock改为Bottom将datagridview放在winfrom最底端
MultiSelect 改为false 后用户只选中一行数据
RowHeadersVisible改为false第一列将会被隐藏
SelectionMode改为FullRowSelect 选中一整行数据
contextMenuStrip改为contextMenuStrip1 绑定contextStrip
3、给添加信息到datagridview中,通过循环person对象给dataGridView1赋值,具体代码见下
private void btnAddGridview_Click(object sender, EventArgs e)
{
if (dataGridView1.Rows.Count >=0)
{
dataGridView1.Rows.Clear();
for (int i = 0; i < listBoxFor.Items.Count; i++)
{
Person p = (Person)listBoxFor.Items[i];
dataGridView1.Rows.Add();
dataGridView1.Rows[i].Cells["Column1"].Value = p.ID;
dataGridView1.Rows[i].Cells["Column2"].Value = p.Name;
dataGridView1.Rows[i].Cells["Column3"].Value = p.Age;
dataGridView1.Rows[i].Cells["Column4"].Value = p.Position;
dataGridView1.Rows[i].Cells["Column5"].Value = p.HomeAddresss;
dataGridView1.Rows[i].Cells["Column6"].Value = p.IdentifyNumber;
}
}
}
4、给datagridview中添加右键删除选中一行用户信息操作,具体代码见下
private void ToolStripMenuItem_Click(object sender, EventArgs e)
{
string name;
if (dataGridView1.SelectedRows.Count>0)
{
DialogResult comfirm = MessageBox.Show("确定删除信息...", "确定删除", MessageBoxButtons.YesNo,
MessageBoxIcon.Exclamation);
if (comfirm == DialogResult.Yes)
{
name = dataGridView1.CurrentRow.Cells["Column2"].Value.ToString();
bool result = Control.DeleteUser(name);
if (result == true)
{
MessageBox.Show("成功删除用户选中信息");
}
else
{
MessageBox.Show("删除用户失败!");
}
RefreshUI(name);
}
}
}
5、作删除操作时,将listbox与datagridview中删除信息后,进行刷新操作,具体代码见下
private void RefreshUI(string name)
{
for (int i = 0; i <listBoxFor.Items.Count; i++)
{
Person p = (Person) listBoxFor.Items[i];
if (p.Name == name)
{
listBoxFor.Items.RemoveAt(i);
break;
}
}
btnAddGridview_Click(null, null);
}
运行后的效果图如下
右键后图片如下
按确定后
按是按钮之后
技术点
1、取出listBox中封装的对象的属性,给datagridview赋值。
2、通过获取选中datagridview中数据,获取datagridview中name值,通过用户名删除用户信息。
3、删除用户信息时,进行界面刷新操作,新建一个刷新界面的方法。
感想
通过此实例来加强面向对象的编程,熟练运用面向对象的方法,将数据倒来倒去,最终获取想要的信息。
源码下载