...
C# |
private void C1trueDBGrid1_KeyPress(object sender, { |
更多关于主题相关的信息以及本地.NET事件,请参阅MSDN 或 .NET 帮助。
...
Visual Basic |
Private Sub C1TrueDBGrid1_BeforeColEdit(ByVal sender As Object, ByVal e As Case Else |
To write code in C#
C# | |
private void C1TrueDBGrid1_BeforeColEdit( object sender, e.Cancel = true; switch (e.KeyChar. .ToUpper()) { |
注意,当KeyChar为0,事件件处理将终止,因此鼠标编辑仍然被允许。
...
C# |
private void Form1_Load(System.object sender, System.EventArgs e) { |
...
WinForms版版True DBGrid 可以在许多TextBox 类型控件中支持标准文本选择属性:
Property | Description |
SelectionLength | 设置/返回所选择文本的长度。 |
SelectionStart | 设置/返回所选择文本的起始位置。 |
|
|
Property | Description |
SelectedText | 设置/返回所选择文本。 |
注意注意: 这些属性仅在网格处于编辑模式中有效,也就是说它的EditActive 属性为True。
...
...
输入掩码
使用控件的NumberFormat 属性显示列数据的格式,如果用户需要编辑一个格式化的列,最好的方法是在编辑过程中
保持了一致的格式,WinForms版版True DBGrid 提供了一个EditMask 可选择属性与NumberFormat 属性确保数据输入的一致性。
...
\ 下一个字符作为文字
> 转换字母为大写
< 转换字母为小写
例如:
To write code in Visual Basic
Visual Basic |
' 设置掩码因而用户可以输入一个电话号码,使用可选区域代码和大写状态。 |
To write code in C#
C# |
// 设置掩码因而用户可以输入一个电话号码,使用可选区域代码和大写状态 |
this.c1TrueDBGrid1.Columns[0].EditMask = "(###) 000-0000 St\\ate |
: >LL"; |
]]></ac:plain-text-body></ac:structured-macro>
使用掩码来格式化
尽管EditMask 属性可以用于指定一个网格中数据的格式化显示,如果列的NumberFormat 属性未被指定,网格可以简单的显示缓存文本(剥离文字),如果NumberFormat 属性被指定,网格会发送缓存文本用以显示格式。由于常见的输入和显示格式都是相同的,NumberFormat 属性有一个Edit Mask 选项,如果该选项被选择,此时EditMask 属性设置将被用于数据输入和显示,然而输入和显示格式不需要相同,因此一个NumberFormat 选项不同于可以被选择的EditMask 属性。
...
为了启用C1DisplayColumn 对象的单元格按钮,可以在代码中设置它的Button 属性为True:
To write code in Visual Basic
Visual Basic |
Me.C1TrueDBGrid1.Splits(0).DisplayColumns(0).Button = True |
To write code in C#
C# | ||
<ac:structured-macro ac:name="unmigrated-wiki-markup" ac:schema-version="1" ac:macro-id="c3ac6417-095a-4384-98cd-e9c517210705"><ac:plain-text-body><![CDATA[ | this.c1TrueDBGrid1.Splits[0].DisplayColumns[0].Button = true; | ]]></ac:plain-text-body></ac:structured-macro> |
当列的DropDown 属性被设置为C1TrueDBDropDown 控件名称时,Button 属性也可以被启用,或者与ValueItemCollection 对象相关联的Presentation 属性被设置为组合框选项之一。
默认情况下,单元格内按钮仅在当前单元格中显示,其显示如下图:
然而,通过设置列的ButtonAlways 属性为True,您可以使单元格内按钮显示在每一行中:
...
为了在一个C1DisplayColumn对象中绘制当前单元格为一个非编辑指令按钮,在代码中设置它的ButtonText 属性为True :
To write code in Visual Basic
Visual Basic |
Me.C1TrueDBGrid1.Splits(0).DisplayColumns(0).ButtonText = True |
To write code in C#
C# |
<ac:structured-macro ac:name="unmigrated-wiki-markup" ac:schema-version="1" ac:macro-id="635ff9da-f0e5-4b6e-a597-7e0aa4b5eb74"><ac:plain-text-body><![CDATA[
this.c1TrueDBGrid1.Splits[0].DisplayColumns[0].ButtonText = true; |
]]></ac:plain-text-body></ac:structured-macro>
当在列中的一个单元格被聚焦时,它会将单元格文本作为标题绘制一个标准窗口指令,单元格文本不能自动居中,但代表列的水平和垂直对齐设置:
如果Button 和ButtonText 属性被设置为True 时,ButtonText属性优先。
由于使用了默认单元格内按钮,设置列的ButtonAlways 属性为True 可以使全部单元格显示为指令按钮,然而,聚焦矩形框仅在当前单元格中绘制:
...
Visual Basic |
Private Sub C1TrueDBGrid1_ButtonClick(ByVal sender As Object, ByVal e As |
To write code in C#
C# |
private void C1TrueDBGrid1_ButtonClick( object sender, |
当单元格内按钮被点击后它总是被触发,无论它们是否通过Button 或 ButtonText启用,ButtonClick事件示例在之前的章节使用文本使用文本 (Section 11.3)中呈现了。
...
Visual Basic |
Me.C1TrueDBGrid1.Columns(0).ButtonPicture = |
To write code in C#
C# | |||
<ac:structured-macro ac:name="unmigrated-wiki-markup" ac:schema-version="1" ac:macro-id="b294509e-2891-4cbd-a8ae-231eca3ad569"><ac:plain-text-body><![CDATA[ | this.c1TrueDBGrid1.Columns[0].ButtonPicture = | ]]></ac:plain-text-body></ac:structured-macro> | System.Drawing.Image.FromFile("dollar.bmp"); |
网格会自动绘制相应的向上/向下状态地边缘,因此仅需要提供按钮内部的图像。
...
To write code in Visual Basic
Visual Basic |
Private Sub C1TrueDBGrid1_BeforeColEdit(ByVal sender As Object, ByVal e As r = Me.C1TrueDBGrid1.RectangleToScreen(r) r = Me.RectangleToClient(r) Me.ListBox1.Left = r.Left |
To write code in C#
C# |
private void c1TrueDBGrid1_BeforeColEdit(object sender, <ac:structured-macro ac:name="unmigrated-wiki-markup" ac:schema-version="1" ac:macro-id="1d6ee914-9d2e-4318-9487-986b70a56c81"><ac:plain-text-body><![CDATA[ Rectangle r = this.c1TrueDBGrid1.Splits[0].GetCellBounds(this.c1TrueDBGrid1.Row, e.ColIndex); r = this.c1TrueDBGrid1.RectangleToScreen(r); r = this.RectangleToClient(r); this.ListBox1.Left = r.Left; this.ListBox1.Top = r.Bottom;]]></ac:plain-text-body></ac:structured-macro> } |
- 将代码放在下拉或组合框中,通过将所选的值分配给正在编辑的列的文本或值属性完成编辑过程。
...