| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 2823 人关注过本帖
标题:C#问题...DataGrid怎么加行加列???(不是读SQL数据)!
只看楼主 加入收藏
立志成佛
Rank: 1
等 级:新手上路
威 望:2
帖 子:314
专家分:0
注 册:2006-11-1
收藏
得分:0 
以下是引用达人一派在2007-7-31 14:56:42的发言:

为什么我新建这个项目的时候提示没有安装.NET FRAMEWORK PC 2.0 可是从添加删除里看 已经安装了

最好的办法就是重装,装的时候要全选。


曾经的曾经已不在
2007-07-31 14:59
wdhuangshuo
Rank: 1
等 级:新手上路
帖 子:27
专家分:0
注 册:2007-7-26
收藏
得分:0 
非常感谢你的帮助!
2007-08-01 10:45
guoxhvip
Rank: 8Rank: 8
来 自:聖西羅南看臺
等 级:贵宾
威 望:44
帖 子:4052
专家分:135
注 册:2006-10-8
收藏
得分:0 
可以在事件里给内存表添加行 那么DataGrid也相应会增加行

愛生活 && 愛編程
2007-08-01 15:08
wdhuangshuo
Rank: 1
等 级:新手上路
帖 子:27
专家分:0
注 册:2007-7-26
收藏
得分:0 
回复:(立志成佛)以下是引用wdhuangshuo在2007-7-31...

还有个问题~就是我在删除行之后,在次生成行后!它的编号是继续的,而不是从零开始!就像这样~
第一次添加行:
图片附件: 游客没有浏览图片的权限,请 登录注册

第二次添加行:
图片附件: 游客没有浏览图片的权限,请 登录注册

我试过,在删除行之后重新new一下DataColumn idColumn;可是不行!
请问有什么办法能让它删除行以后,在添加行的时候都是一个新的组件,而不是继续使用上一次的!
就是删除行后,在添加行的时候File从0开始!
2007-08-02 09:37
wdhuangshuo
Rank: 1
等 级:新手上路
帖 子:27
专家分:0
注 册:2007-7-26
收藏
得分:0 
13楼说的我不会呀..能不能给个例子?
2007-08-02 09:38
立志成佛
Rank: 1
等 级:新手上路
威 望:2
帖 子:314
专家分:0
注 册:2006-11-1
收藏
得分:0 

试试这个
[CODE]using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Text;
using System.Windows.Forms;
namespace PocketTest
{
public partial class Form1 : Form
{
private DataTable namesTable ;
public Form1()
{
InitializeComponent();
}
private void Form1_Load(object sender, EventArgs e)
{
InitTable();
}
private void InitTable()
{
this.namesTable = new DataTable("Names");
DataColumn idColumn = new DataColumn();
idColumn.DataType = System.Type.GetType("System.Int32");
idColumn.ColumnName = "File";
idColumn.AutoIncrement = true;
namesTable.Columns.Add(idColumn);
DataColumn fNameColumn = new DataColumn();
fNameColumn.DataType = System.Type.GetType("System.String");
fNameColumn.ColumnName = "Name";
fNameColumn.DefaultValue = "name";
namesTable.Columns.Add(fNameColumn);
DataColumn numColumn = new DataColumn();
numColumn.DataType = System.Type.GetType("System.Int32");
numColumn.ColumnName = "Data";
numColumn.AutoIncrement = true;
namesTable.Columns.Add(numColumn);
}
private void button1_Click(object sender, EventArgs e)
{
namesTable.Rows.Add(namesTable.NewRow());
this.dataGrid1.DataSource = namesTable;
}
private void button2_Click(object sender, EventArgs e)
{
this.namesTable.Dispose();
InitTable();
this.dataGrid1.DataSource = namesTable;
}
}
}[/CODE]


曾经的曾经已不在
2007-08-02 10:34
wdhuangshuo
Rank: 1
等 级:新手上路
帖 子:27
专家分:0
注 册:2007-7-26
收藏
得分:0 
噢..在删除按钮在调用一下那个方法就行了?
他谢谢你了,这么帮助我!
还有个问题!怎么设置表的大小啊?就是列和列之间的大小,让它充满DataGrid控件最好!
2007-08-02 12:20
立志成佛
Rank: 1
等 级:新手上路
威 望:2
帖 子:314
专家分:0
注 册:2006-11-1
收藏
得分:0 
以下是引用wdhuangshuo在2007-8-2 12:20:59的发言:
噢..在删除按钮在调用一下那个方法就行了?
他谢谢你了,这么帮助我!
还有个问题!怎么设置表的大小啊?就是列和列之间的大小,让它充满DataGrid控件最好!


用到的控件对应表
[CODE] private System.Windows.Forms.DataGrid dataGrid1;
private System.Windows.Forms.Button button1;
private System.Windows.Forms.Button button2;
private System.Windows.Forms.TextBox textBox1;[/CODE]

试试下面这段代码可以达到你想要的效果
另外提醒手工在Datagrid的TableStyle属性里设置也可以达到同样效果
但是不能灵活控制


using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Text;
using System.Windows.Forms;
using System.Collections;

namespace PocketTest
{
public partial class Form1 : Form
{
private DataTable namesTable ;
public Form1()
{
InitializeComponent();
}
private void Form1_Load(object sender, EventArgs e)
{
InitTable();
}
private void InitTable()
{
this.namesTable = new DataTable("Names");

DataColumn idColumn = new DataColumn();
idColumn.DataType = System.Type.GetType("System.Int32");
idColumn.ColumnName = "File";
idColumn.AutoIncrement = true;
namesTable.Columns.Add(idColumn);

DataColumn fNameColumn = new DataColumn();
fNameColumn.DataType = System.Type.GetType("System.String");
fNameColumn.ColumnName = "Name";
fNameColumn.DefaultValue = "name";
namesTable.Columns.Add(fNameColumn);

DataColumn numColumn = new DataColumn();
numColumn.DataType = System.Type.GetType("System.Int32");
numColumn.ColumnName = "Data";
numColumn.AutoIncrement = true;
namesTable.Columns.Add(numColumn);

DataGridTableStyle dgts = new DataGridTableStyle();
dgts.MappingName = this.namesTable.TableName;

int columnNum = 3;
for (int i = 0; i < columnNum; i++)
{
DataGridColumnStyle dgcs = new DataGridTextBoxColumn();
dgcs.Width = (this.dataGrid1.Width - 20 - columnNum ) / columnNum;
dgcs.MappingName = this.namesTable.Columns[i].ColumnName;
dgcs.HeaderText = this.namesTable.Columns[i].ColumnName;
dgts.GridColumnStyles.Add(dgcs);
}

this.dataGrid1.TableStyles.Clear();
this.dataGrid1.TableStyles.Add(dgts);

}
private void button1_Click(object sender, EventArgs e)
{
if (string.IsNullOrEmpty(this.textBox1.Text))
{
MessageBox.Show("Please Input One Number");
return;
}
for (int i = 0; i < int.Parse (this.textBox1.Text) ; i++)
{
namesTable.Rows.Add(namesTable.NewRow());
}
this.dataGrid1.DataSource = namesTable;
}

private void button2_Click(object sender, EventArgs e)
{
this.namesTable.Dispose();
InitTable();
this.dataGrid1.DataSource = namesTable;
}
}
}


曾经的曾经已不在
2007-08-02 13:48
立志成佛
Rank: 1
等 级:新手上路
威 望:2
帖 子:314
专家分:0
注 册:2006-11-1
收藏
得分:0 
图片附件: 游客没有浏览图片的权限,请 登录注册


曾经的曾经已不在
2007-08-02 14:06
wdhuangshuo
Rank: 1
等 级:新手上路
帖 子:27
专家分:0
注 册:2007-7-26
收藏
得分:0 

太理想了...太感谢你了~!
可是为什么代码没错~!但是在Form1.cs[Design]里显示不出界面.!说有错误,还有一个警告!
我切图了~!

图片附件: 游客没有浏览图片的权限,请 登录注册

警告是:
图片附件: 游客没有浏览图片的权限,请 登录注册



zsP1sY1c.jpg (59 KB)
图片附件: 游客没有浏览图片的权限,请 登录注册
2007-08-02 14:34
快速回复:C#问题...DataGrid怎么加行加列???(不是读SQL数据)!
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.026483 second(s), 8 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved