📄 numberfielddefinition.cs
字号:
using System;
using System.Drawing;
using System.Collections;
using System.ComponentModel;
using System.Windows.Forms;
using Epi.Data.Services;
using Epi.Fields;
namespace Epi.Windows.MakeView.Dialogs.FieldDefinitionDialogs
{
/// <summary>
/// The Number Field Definition dialog
/// </summary>
public partial class NumberFieldDefinition : ContiguousFieldDefinition
{
#region Fields
private NumberField field;
#endregion //Fields
#region Private Methods
private void PopulatePatterns()
{
System.Data.DataView patterns = (System.Data.DataView) AppData.Instance.DataPatternsDataTable.DefaultView;
//System.Data.DataView patterns = page.GetMetadata().GetPatterns().DefaultView;
patterns.RowFilter = "DataTypeId = " + ((int) DataType.Number).ToString();
cbxPattern.DataSource = patterns;
cbxPattern.DisplayMember = Epi.ColumnNames.EXPRESSION;
cbxPattern.ValueMember = Epi.ColumnNames.PATTERN_ID;
}
private void LoadFormData()
{
txtPrompt.Text = field.PromptText;
txtFieldName.Text = field.Name;
chkReadOnly.Checked = field.IsReadOnly;
chkRepeatLast.Checked = field.ShouldRepeatLast;
chkRequired.Checked = field.IsRequired;
int fieldType = (int)field.FieldType;
if (!string.IsNullOrEmpty(field.Pattern))
{
cbxPattern.Text = field.Pattern;
}
else
{ //set a default number pattern
//cbxPattern.Text = "##";
cbxPattern.Text = AppData.Instance.DataPatternsDataTable.GetDefaultPattern(AppData.Instance.FieldTypesDataTable.GetPatternIdByFieldId(fieldType));
}
promptFont = field.PromptFont;
controlFont = field.ControlFont;
}
#endregion //Private Methods
#region Constructors
/// <summary>
/// Default Constsructor, for exclusive use by the designer.
/// </summary>
public NumberFieldDefinition()
{
InitializeComponent();
}
/// <summary>
/// Constructor for the Number Field Definition
/// </summary>
/// <param name="frm">The main form</param>
/// <param name="page">The current page</param>
public NumberFieldDefinition(MainForm frm, Page page) : base(frm)
{
InitializeComponent();
this.mode = FormMode.Create;
this.page = page;
PopulatePatterns();
cbxPattern.SelectedIndex = -1;
}
/// <summary>
/// Constructor for the Number Field Definition
/// </summary>
/// <param name="frm">The main form</param>
/// <param name="field">The number field</param>
public NumberFieldDefinition(MainForm frm, NumberField field) : base(frm)
{
InitializeComponent();
this.mode = FormMode.Edit;
this.field = field;
this.page = field.Page;
PopulatePatterns();
cbxPattern.SelectedIndex = -1;
LoadFormData();
}
#endregion Constructors
#region Public Methods
/// <summary>
/// Sets the field's properties based on GUI values
/// </summary>
protected override void SetFieldProperties()
{
field.Name = txtFieldName.Text;
field.PromptText = txtPrompt.Text;
if (!string.IsNullOrEmpty(cbxPattern.Text))
{
field.Pattern = cbxPattern.Text;
}
if (promptFont != null)
{
field.PromptFont = promptFont;
}
if (controlFont != null)
{
field.ControlFont = controlFont;
}
field.IsRequired = chkRequired.Checked;
field.IsReadOnly = chkReadOnly.Checked;
field.ShouldRepeatLast = chkRepeatLast.Checked;
}
/// <summary>
/// Gets the field defined by this field definition dialog
/// </summary>
public override RenderableField Field
{
get
{
return field;
}
}
#endregion //Public Methods
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -