找回密码
 立即注册

QQ登录

只需一步,快速开始

sxyweiren

中级会员

73

主题

366

帖子

755

积分

中级会员

积分
755

活字格认证微信认证勋章

sxyweiren
中级会员   /  发表于:2013-11-29 18:06  /   查看:7884  /  回复:9
如题
TrueDBGrid如何设置单元格的默认值为Nothing?而不是DBnull?
(就是新追加一条,然后我取单元格的CellValue或者取DataTable的值的时候取到的是Nothing)

如何判断Delete键按下的时候是删除一行还是删除当前单元格的值。(判断Selection?)

使用Delete键删除数据后,进入AfterDelete事件内的时候取DataTable的值,这个时候DataTable内是有Delete的行(就是DataTable被删除的那种状态,一串红叹号)
的。如何能够让DataTable的数据更新?

9 个回复

倒序浏览
roger.wang
社区贡献组   /  发表于:2013-12-2 17:48:00
沙发
回复 1楼sxyweiren的帖子

在您这个帖子,提问了3个问题,我一一回答如下:
问题1:怎么设置新增单元格为Nothing?
  
  1. void c1TrueDBGrid1_OnAddNew(object sender, EventArgs e)
  2.         {
  3.             this.c1TrueDBGrid1.Columns[1].Value = "Nothing";
  4.             this.c1TrueDBGrid1.Columns[2].Value = "Nothing";
  5.             this.c1TrueDBGrid1.Columns[3].Value = "Nothing";
  6.         }
复制代码


问题2: 判断当前选择Cell?  Row? Col?
  1. //开始选择的单元格的行、列的ID
  2.             int row = c1TrueDBGrid1.Row;
  3.             int col = c1TrueDBGrid1.Col;

  4.             //选择的列、行的个数--如选择单元格,则都为0
  5.             int cc = c1TrueDBGrid1.SelectedCols.Count;
  6.             int rr = c1TrueDBGrid1.SelectedRows.Count;
复制代码


问题3: Delete键 是什么场景?  能再给描述一下吗? 方便的话提供个demo以使得分析速度加快。
回复 使用道具 举报
sxyweiren
中级会员   /  发表于:2013-12-2 21:34:00
板凳
回复 2楼roger.wang的帖子

问题1:怎么设置新增单元格为Nothing?
Nothing这个东西不是字符串,而是某一个特殊的值,比如说Xarray(1,1) = Nothing
这是一个值设定过去的,类似于VB6的Empty值,比如VB6里面 Dim te 在之后取Te的值会发现他是Empty值。
用它跟0或者“”比较都是True。

问题4:
ComponentOne对Framework4.0的要求或者定义是什么?是单纯的Framework4.0的Client还是Client+Extended


例如:上图标出的安装的几个东西哪一个是必要的?
或者说少了哪几个TrueDBGrid,Spread 7.0Sp1和InputMan7.0可以正常运行?

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?立即注册

x
回复 使用道具 举报
roger.wang
社区贡献组   /  发表于:2013-12-3 11:13:00
地板
回复 3楼sxyweiren的帖子

问题1 :
昨天晚上给您回复的意思是,可以通过那个函数赋值--object类型的。
如果VB话的赋值Nothing即可。
Me.c1TrueDBGrid1.Columns(1).Value = Nothing

问题3, 现在没有问题了吗?

问题4:ComponentOne属于.net第三方控件,对安装环境的要求VS预先安装。如,开发Framework 4.0 ,则要求先安装了VS 2010。
而您图片列举出来的,在安装VS 2010的时候已经默认安装了,故不需要特别考虑。  :Z
回复 使用道具 举报
sxyweiren
中级会员   /  发表于:2013-12-3 14:04:00
5#
回复 4楼roger.wang的帖子

问题1 :
但是如果按照【Me.c1TrueDBGrid1.Columns(1).Value = Nothing】这种方法赋值后,再次取得的值是DbNull啊?好像保存不了Nothing的。

问题3:
我现在正在想办法用最基础的TrueDBGrid来再现。等我试出来在提出。这个问题先掠过吧。有点难度。

问题4:
那如果不是开发环境呢?毕竟如果产品上线不可能所有的机器都装开发环境。希望能够得出运行环境的结果。
希望能够的出运行环境装最少的软件运行此环境。
回复 使用道具 举报
roger.wang
社区贡献组   /  发表于:2013-12-3 15:42:00
6#
回复 5楼sxyweiren的帖子

问题1: 刚测试了。 C#下是可以存储的。 在VB.net下,情况和你描述一样, 存储不了Nothing的数据类型。抱歉。   字符串的倒可以。

问题4:无开发环境, 依赖.NetFramework 4.0(非Client Profile精简版的),和部署类似.
回复 使用道具 举报
sxyweiren
中级会员   /  发表于:2013-12-4 15:08:00
7#
回复 6楼roger.wang的帖子
问题4:无开发环境, 依赖.NetFramework 4.0(非Client Profile精简版的),和部署类似.

Win7自带的那种.NetFramework 4.0 Client Profile 可以么?
回复 使用道具 举报
roger.wang
社区贡献组   /  发表于:2013-12-4 15:13:00
8#
回复 7楼sxyweiren的帖子

抱歉, 不可以。

昨天我测试的是:VS 2012下选择生成对象为:4.0 Client Profile ,启动不了。

故Win7自带的应该不行, 如你那里有环境,可以做个TrueDBGrid的工程,编译一个exe,运行验证一下。
回复 使用道具 举报
sxyweiren
中级会员   /  发表于:2013-12-4 17:39:00
9#
回复 8楼roger.wang的帖子

嗯,好的。知道了。谢谢了。

这个帖子结了吧。关于问题3等我有机会了会尝试着做一个小例子。到时候再问问你
回复 使用道具 举报
roger.wang
社区贡献组   /  发表于:2013-12-4 18:06:00
10#
回复 9楼sxyweiren的帖子

合作愉快  
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 立即注册
返回顶部