C# Grid






3.60/5 (36投票s)
2003年12月12日

284269

3563
C# 中的网格实现
引言
在开始之前,这个网格还处于起步阶段,我希望通过与其他 CodeProject 成员的合作,能够将这个网格的功能做到像 Microsoft Excel 中的网格一样。为此,我将文章内容保持在最低限度,预计在未来几个月内会增加内容。
预计会出现错误和功能缺失,这些问题将在未来的版本中解决。
还缺少什么
- 单元格中的图像对齐
- 有限的事件
- 专用单元格
- 以及其他各种功能
如果您想为这个项目贡献力量,请通过下面的讨论区给我发邮件。我正在寻找两名具有良好 GUI 和设计技能的人。
设计
该网格主要用作控件,也可以选择作为类直接使用。让我们看一下简单的类设计。
我在这里省略了属性和方法,这些将在稍后文档中说明。
使用示例
virtual public void Demo()
{
gridCtrl.LockUpdates = true;
for (int r=0; r < 30; r++)
gridCtrl.AddRow();
for (int c=0; c < 30; c++)
gridCtrl.AddColumn();
int ii=0;
int i=255;
for (int r=1;r < gridCtrl.rowList.Count;r++)
{
i = 255;
for (int c=1;c < gridCtrl.colList.Count;c++)
{
gridCtrl.GetCell(r,c).Value = ii++;
gridCtrl.GetCell(r,c).BackColor = Color.FromArgb(i,i,255);;
i-=5;
}
}
gridCtrl.SetFixedRowCount(1);
gridCtrl.SetFixedColumnCount(1);
gridCtrl.GetRow(2).Size = 40;
gridCtrl.GetColumn(1).Size = 180;
gridCtrl.GetRow(8).Visible = false;
gridCtrl.GetRow(17).Size = 40;
gridCtrl.GetCell(1,4).BackColor = Color.Cornsilk;
gridCtrl.GetCell(2,4).BackColor = Color.CornflowerBlue;
gridCtrl.GetCell(3,4).BackColor = Color.Coral;
gridCtrl.GetCell(4,4).BackColor = Color.CadetBlue;
gridCtrl.GetCell(1,1).HorizontalAlignment =
Cell.HorizontalAlignmentType.Left;
gridCtrl.GetCell(1,1).Value = "Left";
gridCtrl.GetCell(1,1).TextColor = Color.Blue;
gridCtrl.GetCell(1,1).FontName = "System";
gridCtrl.GetCell(2,1).HorizontalAlignment =
Cell.HorizontalAlignmentType.Center;
gridCtrl.GetCell(2,1).Value = "Center";
gridCtrl.GetCell(3,1).HorizontalAlignment =
Cell.HorizontalAlignmentType.Right;
gridCtrl.GetCell(3,1).Value = "Right";
gridCtrl.GetCell(4,1).VerticalAlignment =
Cell.VerticalAlignmentType.Top;
gridCtrl.GetCell(4,1).Value = "Top";
gridCtrl.GetCell(5,1).VerticalAlignment =
Cell.VerticalAlignmentType.Center;
gridCtrl.GetCell(5,1).Value = "Center";
gridCtrl.GetCell(6,1).VerticalAlignment =
Cell.VerticalAlignmentType.Bottom;
gridCtrl.GetCell(6,1).Value = "Bottom";
gridCtrl.GetCell(2,2).FontStyle = FontStyle.Bold;
gridCtrl.GetCell(2,3).FontStyle = FontStyle.Italic;
gridCtrl.GetCell(2,4).FontStyle = FontStyle.Underline;
gridCtrl.GetCell(12,12).TipText = "Cell";
Cell cell = gridCtrl.GetCell(7,1);
cell.TextColor = Color.Yellow;
cell.BackColor = Color.Black;
cell.Value = "Funny";
gridCtrl.GetRow(4).CanResize = false;
gridCtrl.GetColumn(4).CanResize = false;
gridCtrl.GetCell(9,1).FontName = "Wingdings";
gridCtrl.GetCell(17,1).Image = new Bitmap(GetType(), "image1.bmp");
gridCtrl.LockUpdates = false;
gridCtrl.AdjustScrollbars();
Invalidate();
}
历史
- 1.0 - 2003年9月12日 - 初始发布。