目录
介绍
改进措施
使用代码
完整代码概述
本机Windows窗体控件datagridview不支持单个控件中的主从视图。通过多数方法,这应该通过两个单独的datagridview控件完成。在本技巧中,我将讨论有关如何在单个datagridview控件中显示主从数据视图的方法。屏幕截图中显示了我们所需的典型布局,并提供了完整的代码概述。
- 下载MasterGridView.zip-158.8 KB
我们中的许多开发人员都遇到了有关如何在单个Datagridview 控件(例如第三方应用程序Devexpress)中显示主从视图的问题。
本机Windows Forms控件datagridview 在单个控件中不支持“主从信息”视图。通过多数方法,这应该通过两个单独的datagridview 控件来完成。
在本技巧中,我将与您讨论如何在单个datagridview 控件中显示主从数据视图的方法。尽管备用Datagrid控件支持主从datagridview,但展开child datagridview 会占据整个控件的位置,这将使您的datagridview数据布局不符合数据验证所需的良好布局。我们需要的典型布局是我们在所附屏幕截图中可以看到的布局。
改进措施- 网格(grids)中用List对象填充。
- 网格(grids)是完全可编辑的。
- 网格(grids)基于类的每个属性的描述属性显示工具提示。
- 修复了防止使用箭头键在子网格(grids)中移动的问题。
在此示例演示中,我使用了一个List对象集合。
请执行以下非常简单的步骤:
1、声明一个引用到MasterControl的变量:
MasterGridView masterGridView1
2、加载数据:
private void Form1_Load(object sender, EventArgs e)
{
masterGridView1.DataSource = Persona.getPersonas();
}
3、将子级TabControl设置为与父级datagridview相同的层次结构:
masterGridView1.SetChildTabcontrol();
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;
// Developed by: Gani Weecom
// Email:ganiweecom@yahoo.com
// Migration to C# by Telerik
//=======================================================
//Service provided by Telerik (www.telerik.com)
//Conversion powered by NRefactory.
//Twitter: @telerik
//Facebook: facebook.com/telerik
//=======================================================
// and magic touch by kevin@diaz.pe ;)
namespace WindowsFormsApplication3
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
// Important: Set child TabControl on the same hierarchy than parent datagridview
masterGridView1.SetChildTabcontrol();
}
private void Form1_Load(object sender, EventArgs e)
{
masterGridView1.DataSource = Persona.getPersonas();
}
}
}