找回密码
 立即注册

QQ登录

只需一步,快速开始

willsHuang

注册会员

5

主题

21

帖子

197

积分

注册会员

积分
197

活字格认证

willsHuang
注册会员   /  发表于:2015-10-14 11:32  /   查看:11498  /  回复:10
我們使用 GcMultiRow 8.20.20143.0,剛剛開始學習使用,
請問一下,TextBoxCell 如何能限制使用者輸入的字元:
  1.英文字元:A-Z/a-z
  2.數字字元:0-9
  3.英文或數字字元:A-Z/a-z/0-9

初學者,請多多指教,感恩

10 个回复

倒序浏览
Carl
版主   /  发表于:2015-10-14 14:20:00
沙发
通过设置GcTextBoxCell的Format属性控制,不是TextBoxCell。
可以在设计器里直接选择你要的字符,也可以通过代码设置,具体可以参考帮助手册和Demo。

评分

参与人数 1金币 +999 收起 理由
Alice + 999 奖励金币

查看全部评分

愿 Engine 归于沉寂,Timer 停止运动,Message Queue 不再流淌,Data Source 为我掌握
回复 使用道具 举报
willsHuang
注册会员   /  发表于:2015-10-14 16:26:00
板凳
回复 2楼Carl的帖子

附件是我的Visual Studio設計畫面,
在ToolBox中並沒看到您所提的GcTextBoxCell,



向您再說明一次,我們是使用,GrapeCity.Win.MultiRow.GcMultiRow
並 使用 GrapeCity.Win.MultiRow.TextBoxCell。

如果您方便的話,能否提供一下,線上的参考帮助手册和Demo,
因為我所安裝的手冊及Demo中也沒找到 GcTextBoxCell ....?

麻煩您了...

本帖子中包含更多资源

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

x
回复 使用道具 举报
Alice
社区贡献组   /  发表于:2015-10-15 09:34:00
地板
回复 3楼willsHuang的帖子

谢谢你的反馈。
MultiRow除了可以使用标准的单元格类型(比如TextBxoCell)之外,还可以使用其他种类的(Inputman和PlusPak,我们公司的其他控件产品)的单元格类型,其中Inputman中的控件就包含GcTextBoxCell。

这也是需要购买Inputman的授权才可以使用的控件。

对于标准的TextBox,只能通过MaxLength属性来控制长度,如果想对内容进行控制,只能写代码实现。在EditingControlShowing事件中,可以拿到标准的TextBox,然后写代码去控制输入的值。

如果使用GcTextBoxCell单元格类型,因为就存在Format属性,直接设置属性就可以实现。

希望以上,对你有帮助。
请点击评分,对我的服务做出评价!  5分为非常满意!

葡萄城控件服务团队

官方网站: http://www.gcpowertools.com.cn
回复 使用道具 举报
willsHuang
注册会员   /  发表于:2015-10-15 11:49:00
5#
感謝您的協助,

為了讓我們公司能進行評估是否採購Inputman 和 PlusPak 授权,
請問我要如何得到下列資訊呢?
1. Inputman 和 PlusPak 授权費用。
2. Inputman 和 PlusPak 所提供的功能是否能有相關文件說明 及 提供先行測試使用看看呢 ?

以上,麻煩您, 指導一下,

謝謝
回复 使用道具 举报
Alice
社区贡献组   /  发表于:2015-10-15 12:30:00
6#
回复 5楼willsHuang的帖子

谢谢反馈。
从你的描述来看,你有InputmanCell的需求,但是需求的普遍性等问题我还需要和您确认,才能帮助你评估哪种方案比较合适。
请站内短消息,将您的电话发给我,我们沟通下这个问题。

评分

参与人数 1满意度 +5 收起 理由
willsHuang + 5

查看全部评分

请点击评分,对我的服务做出评价!  5分为非常满意!

葡萄城控件服务团队

官方网站: http://www.gcpowertools.com.cn
回复 使用道具 举报
Carl
版主   /  发表于:2015-10-15 16:50:00
7#
如果用TextBoxCell,可以试一下这样:

  1.         private void Form1_Load(object sender, EventArgs e)
  2.         {
  3.             this.gcMultiRow1.EditingControlShowing += gcMultiRow1_EditingControlShowing;
  4.         }

  5.         void gcMultiRow1_EditingControlShowing(object sender, EditingControlShowingEventArgs e)
  6.         {
  7.             if (e.Control is TextBoxEditingControl)
  8.             {
  9.                 (e.Control as TextBoxEditingControl).KeyPress += Form1_KeyPress;
  10.             }
  11.         }

  12.         void Form1_KeyPress(object sender, KeyPressEventArgs e)
  13.         {
  14.             if ((Control.ModifierKeys & (Keys.Control | Keys.Alt)) ==  Keys.None)
  15.             {
  16.                 if (e.KeyChar < '0' || e.KeyChar > '9')
  17.                 {
  18.                     e.Handled = true;
  19.                 }
  20.             }
  21.         }


复制代码

评分

参与人数 1满意度 +5 收起 理由
willsHuang + 5 粉實用,感謝您。

查看全部评分

愿 Engine 归于沉寂,Timer 停止运动,Message Queue 不再流淌,Data Source 为我掌握
回复 使用道具 举报
willsHuang
注册会员   /  发表于:2015-10-16 17:36:00
8#
OK了,感謝您的支持。
回复 使用道具 举报
Alice
社区贡献组   /  发表于:2015-10-19 10:14:00
9#
回复 8楼willsHuang的帖子

不用客气。
非常感谢您的反馈。
为了给你提供更优质的服务,请对本次服务进行评分。我们会认真对待你提出的宝贵意见,谢谢        

评分

参与人数 1满意度 +5 收起 理由
willsHuang + 5

查看全部评分

请点击评分,对我的服务做出评价!  5分为非常满意!

葡萄城控件服务团队

官方网站: http://www.gcpowertools.com.cn
回复 使用道具 举报
willsHuang
注册会员   /  发表于:2015-10-21 09:50:00
10#
Dear 版主:

由於我的工作是開發控件給應用程式員使用,經幾日進一步研究GcMultiRow文件後,
找到下列方式來控制 TextBoxCell 鍵盤的輸入限制。

1.新增一個Custom EditingControl 繼承自 TextBoxEditingControl,並加入處理 KeyPress 事件,來過濾鍵盤輸入。
程式碼如下:
GUIDigitalEditingControl.vb

Imports System.ComponentModel
Imports GrapeCity.Win.MultiRow

<EditorBrowsable(EditorBrowsableState.Advanced), ToolboxItem(False)>
Public Class GUIDigitalEditingControl
    Inherits TextBoxEditingControl

    Private Sub GUIDigitalEditingControl_KeyPress(sender As Object, e As System.Windows.Forms.KeyPressEventArgs) _
        Handles Me.KeyPress
                If Char.IsControl(e.KeyChar) OrElse Char.IsDigit(e.KeyChar) Then
                        e.Handled = False
                Else
                        e.Handled = True
                End If
    End Sub

End Class

2.新增一個Custom Cell 繼承自 TextBoxCell,並 覆寫 EditType Property 設定為 GUIDigitalEditingControl。
程式碼如下:
GUIDigitalCell.vb

Imports System.ComponentModel
Imports GrapeCity.Win.MultiRow
Imports System.Windows.Forms

Public Class GUIDigitalCell
    Inherits TextBoxCell

    Public Overrides ReadOnly Property EditType() As Type
        Get
            Return GetType(GUIDigitalEditingControl)
        End Get
    End Property

End Class

3.在 Visual Studio IDE 的 Template 設計畫面上新增 GUIDigitalCell 到您想放置的位置。

如此,也可達成相同的目的,而且後續應用程式員只要引用即可該Cell即可,
不須再 MultiRow 的 EditingControlShowing 重複相同的Code。

由於,是初次使用 MultiRow 將此方式說明一下,還請版主指導一下。

謝謝
回复 使用道具 举报
12下一页
您需要登录后才可以回帖 登录 | 立即注册
返回顶部