SVN r1236
SVN-Revision: r1236
This commit is contained in:
@@ -476,7 +476,7 @@ namespace Lskj.Control
|
||||
/// </summary>
|
||||
/// <param name="sender">The sender.</param>
|
||||
public event ModuleAddLine OnNewLine;
|
||||
public delegate void ModuleAddLine(string name, List<string>list);
|
||||
public delegate void ModuleAddLine(string name, List<string> list);
|
||||
|
||||
public GridControlEx()
|
||||
{
|
||||
@@ -858,7 +858,7 @@ namespace Lskj.Control
|
||||
{
|
||||
string currentGroupName = GetMergeGroupValue(model, gridRow);
|
||||
bool isMergrGroup = !string.IsNullOrEmpty(currentGroupName) && e.RowHandle != 0 ? currentGroupName.Equals(BeforeGroupName) : false;
|
||||
|
||||
|
||||
if (model.CanMerge && BeforeClass == Convert.ToDecimal(e.FieldValue) && isMergrGroup)
|
||||
{
|
||||
BeforeClass = Convert.ToDecimal(e.FieldValue);
|
||||
@@ -1201,7 +1201,7 @@ namespace Lskj.Control
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
/// <summary>
|
||||
/// <para>说明:设置列格式化</para>
|
||||
@@ -1380,7 +1380,7 @@ namespace Lskj.Control
|
||||
{
|
||||
gridColumn.ToolTip = model.ColumnAnnotation;
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
|
||||
//创建右键菜单列
|
||||
@@ -1725,7 +1725,7 @@ namespace Lskj.Control
|
||||
}
|
||||
|
||||
//gridView.OptionsView.AllowCellMerge = gridView.OptionsView.AllowCellMerge;
|
||||
if (!string.IsNullOrWhiteSpace(model.TitleColor))
|
||||
if (!string.IsNullOrWhiteSpace(model.TitleColor))
|
||||
{
|
||||
gridColumn.AppearanceHeader.Options.UseForeColor = true;
|
||||
gridColumn.AppearanceHeader.ForeColor = ColorTranslator.FromHtml(model.TitleColor);
|
||||
@@ -4355,7 +4355,14 @@ namespace Lskj.Control
|
||||
gridControl.RepositoryItems.Add(searchEdit);
|
||||
gridColumn.ColumnEdit = searchEdit;
|
||||
searchEdit.View.Tag = searchEdit;
|
||||
if (model.SearchBoxAddition) searchEdit.ProcessNewValue += SearchEdit_ProcessNewValue;
|
||||
|
||||
if (model.SearchBoxAddition && (ControlType.LabAutoCompleteText == model.FieldType || ControlType.LabAutoCompleteTextParam == model.FieldType ||
|
||||
ControlType.LabAutoGridText == model.FieldType || ControlType.LabAutoGridTextParam == model.FieldType))
|
||||
{
|
||||
searchEdit.ProcessNewValue += SearchEdit_ProcessNewValue;
|
||||
searchEdit.CustomDisplayText += SearchEdit_CustomDisplayText;
|
||||
|
||||
}
|
||||
|
||||
searchEdit.EditValueChanging += gridLookUpEdit1_EditValueChanging;
|
||||
//if ((ControlType.LabAutoCompleteText == model.FieldType || ControlType.LabAutoGridText == model.FieldType || ControlType.LabAutoGridTextParam == model.FieldType))
|
||||
@@ -4372,7 +4379,8 @@ namespace Lskj.Control
|
||||
|
||||
}
|
||||
/// <summary>
|
||||
/// 添加一个值到数据源中
|
||||
/// 搜索框允许新增时,将用户输入的文本临时加入下拉数据源。
|
||||
/// 这里只处理“显示文本、保存文本”的控件类型,避免给保存ID的控件自动生成不存在的ID。
|
||||
/// </summary>
|
||||
/// <param name="sender"></param>
|
||||
/// <param name="e"></param>
|
||||
@@ -4380,82 +4388,63 @@ namespace Lskj.Control
|
||||
{
|
||||
try
|
||||
{
|
||||
|
||||
GridLookUpEdit edit = sender as GridLookUpEdit;
|
||||
if (edit == null) return;
|
||||
GridColumnModel model = edit.Properties.Tag as GridColumnModel;
|
||||
//RepositoryItemGridLookUpEdit searchEdit = edit.Properties;
|
||||
RepositoryItemGridLookUpEdit searchEdit = GridView.Columns[model.FieldName].ColumnEdit as RepositoryItemGridLookUpEdit;
|
||||
DataTable dt = (searchEdit.DataSource as DataTable);
|
||||
if (model == null || !model.SearchBoxAddition) return;
|
||||
|
||||
if (!(ControlType.LabAutoCompleteText == model.FieldType || ControlType.LabAutoCompleteTextParam == model.FieldType ||
|
||||
ControlType.LabAutoGridText == model.FieldType || ControlType.LabAutoGridTextParam == model.FieldType)) return;
|
||||
|
||||
string displayValue = e.DisplayValue + "";
|
||||
if (string.IsNullOrWhiteSpace(displayValue)) return;
|
||||
|
||||
BeginInvoke(new MethodInvoker(delegate ()
|
||||
{
|
||||
FilterLookup(sender, e.DisplayValue + "");
|
||||
FilterLookup(sender, displayValue);
|
||||
}));
|
||||
|
||||
if (true)
|
||||
RepositoryItemGridLookUpEdit searchEdit = GridView.Columns[model.FieldName].ColumnEdit as RepositoryItemGridLookUpEdit;
|
||||
if (searchEdit == null) return;
|
||||
|
||||
DataTable dt = searchEdit.DataSource as DataTable;
|
||||
if (dt == null) return;
|
||||
|
||||
string valueName = searchEdit.ValueMember;
|
||||
string textName = !string.IsNullOrWhiteSpace(searchEdit.DisplayMember) ? searchEdit.DisplayMember : model.TextMember;
|
||||
if (string.IsNullOrWhiteSpace(valueName) || !dt.Columns.Contains(valueName)) return;
|
||||
|
||||
Type dataType = dt.Columns[valueName].DataType;
|
||||
if (dataType != typeof(string)) return;
|
||||
|
||||
bool exists = dt.Rows.Cast<DataRow>().Any(x =>
|
||||
(x[valueName] + "").Equals(displayValue) ||
|
||||
(!string.IsNullOrWhiteSpace(textName) && dt.Columns.Contains(textName) && (x[textName] + "").Equals(displayValue)));
|
||||
if (exists) return;
|
||||
|
||||
DataRow newRow = dt.NewRow();
|
||||
newRow[valueName] = displayValue;
|
||||
if (!string.IsNullOrWhiteSpace(textName) && dt.Columns.Contains(textName))
|
||||
{
|
||||
if (string.IsNullOrWhiteSpace(e.DisplayValue + "")) return;
|
||||
string ValueName = searchEdit.View.Columns[0].FieldName;
|
||||
string TextName = searchEdit.View.Columns[1].FieldName;
|
||||
Type dataType = dt.Columns[ValueName].DataType;
|
||||
DataRow newRow = dt.NewRow();
|
||||
if (dataType.Name == "Int32")
|
||||
newRow[textName] = displayValue;
|
||||
}
|
||||
|
||||
if (model.FieldType == ControlType.LabAutoGridTextParam || model.FieldType == ControlType.LabAutoCompleteTextParam)
|
||||
{
|
||||
if (this.ManuallyAddData.ContainsKey(model.FieldName))
|
||||
{
|
||||
int maxdm = Convert.ToInt32(searchEdit.View.Columns[ValueName].Tag);
|
||||
edit.Properties.View.ActiveFilterString = string.Format(ValueName + "< {0}", maxdm);
|
||||
|
||||
int maxdmIndex = dt.AsEnumerable().Select(t => t.Field<int>(ValueName)).Max();
|
||||
newRow[ValueName] = maxdmIndex + 1;
|
||||
newRow[TextName] = e.DisplayValue + "";
|
||||
if (dt.Rows.Cast<DataRow>().FirstOrDefault(x => (x[ValueName] + "").Equals(e.DisplayValue + "")) == null)
|
||||
{
|
||||
if (model.FieldType == ControlType.LabAutoGridValueParam || model.FieldType == ControlType.LabAutoGridTextParam || model.FieldType == ControlType.LabAutoCompleteTextParam || model.FieldType == ControlType.LabAutoCompleteValueParam)
|
||||
{
|
||||
if (this.ManuallyAddData.ContainsKey(model.FieldName))
|
||||
{
|
||||
List<DataRow> DataRows = this.ManuallyAddData[model.FieldName];
|
||||
DataRows.Add(newRow);
|
||||
}
|
||||
else
|
||||
{
|
||||
List<DataRow> DataRows = new List<DataRow>();
|
||||
DataRows.Add(newRow);
|
||||
this.ManuallyAddData.Add(model.FieldName, DataRows);
|
||||
}
|
||||
|
||||
}
|
||||
dt.Rows.Add(newRow.ItemArray);
|
||||
e.Handled = true;
|
||||
}
|
||||
this.ManuallyAddData[model.FieldName].Add(newRow);
|
||||
}
|
||||
else if (dataType.Name == "String")
|
||||
else
|
||||
{
|
||||
newRow[ValueName] = e.DisplayValue + "";
|
||||
newRow[TextName] = e.DisplayValue + "";
|
||||
if (dt.Rows.Cast<DataRow>().FirstOrDefault(x => (x[TextName] + "").Equals(e.DisplayValue + "")) == null)
|
||||
{
|
||||
if (model.FieldType == ControlType.LabAutoGridValueParam || model.FieldType == ControlType.LabAutoGridTextParam || model.FieldType == ControlType.LabAutoCompleteTextParam || model.FieldType == ControlType.LabAutoCompleteValueParam)
|
||||
{
|
||||
if (this.ManuallyAddData.ContainsKey(model.FieldName))
|
||||
{
|
||||
List<DataRow> DataRows = this.ManuallyAddData[model.FieldName];
|
||||
DataRows.Add(newRow);
|
||||
}
|
||||
else
|
||||
{
|
||||
List<DataRow> DataRows = new List<DataRow>();
|
||||
DataRows.Add(newRow);
|
||||
this.ManuallyAddData.Add(model.FieldName, DataRows);
|
||||
}
|
||||
|
||||
}
|
||||
dt.Rows.Add(newRow.ItemArray);
|
||||
e.Handled = true;
|
||||
}
|
||||
this.ManuallyAddData.Add(model.FieldName, new List<DataRow>() { newRow });
|
||||
}
|
||||
}
|
||||
|
||||
dt.Rows.Add(newRow.ItemArray);
|
||||
e.Handled = true;
|
||||
|
||||
}
|
||||
catch (Exception ex)
|
||||
{
|
||||
@@ -4467,6 +4456,50 @@ namespace Lskj.Control
|
||||
|
||||
}
|
||||
}
|
||||
/// <summary>
|
||||
/// 搜索框新增值未持久化到下拉SQL数据源时,直接用单元格保存的文本作为显示值。
|
||||
/// 这样重新打开模块后,即使下拉数据源查不到该文本,界面也不会显示为空白。
|
||||
/// </summary>
|
||||
private void SearchEdit_CustomDisplayText(object sender, CustomDisplayTextEventArgs e)
|
||||
{
|
||||
if (e.Value == null) return;
|
||||
|
||||
RepositoryItemGridLookUpEdit edit = sender as RepositoryItemGridLookUpEdit;
|
||||
if (edit == null) return;
|
||||
|
||||
GridColumnModel model = edit.Tag as GridColumnModel;
|
||||
if (model == null || !model.SearchBoxAddition) return;
|
||||
|
||||
if (!(model.FieldType == ControlType.LabAutoCompleteText ||
|
||||
model.FieldType == ControlType.LabAutoCompleteTextParam ||
|
||||
model.FieldType == ControlType.LabAutoGridText ||
|
||||
model.FieldType == ControlType.LabAutoGridTextParam)) return;
|
||||
|
||||
string value = e.Value + "";
|
||||
if (string.IsNullOrWhiteSpace(value)) return;
|
||||
|
||||
DataTable dt = edit.DataSource as DataTable;
|
||||
string valueName = edit.ValueMember;
|
||||
string textName = !string.IsNullOrWhiteSpace(edit.DisplayMember) ? edit.DisplayMember : model.TextMember;
|
||||
if (dt == null ||
|
||||
(string.IsNullOrWhiteSpace(valueName) || !dt.Columns.Contains(valueName)) &&
|
||||
(string.IsNullOrWhiteSpace(textName) || !dt.Columns.Contains(textName)))
|
||||
{
|
||||
e.DisplayText = value;
|
||||
return;
|
||||
}
|
||||
|
||||
bool exists = dt.Rows.Cast<DataRow>().Any(x =>
|
||||
(!string.IsNullOrWhiteSpace(valueName) && dt.Columns.Contains(valueName) && (x[valueName] + "") == value) ||
|
||||
(!string.IsNullOrWhiteSpace(textName) && dt.Columns.Contains(textName) && (x[textName] + "") == value));
|
||||
|
||||
if (!exists)
|
||||
{
|
||||
e.DisplayText = value;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
|
||||
/// <summary>
|
||||
/// 数据源中点击将数据源更新
|
||||
@@ -5484,7 +5517,7 @@ namespace Lskj.Control
|
||||
public virtual void SetGridRowColors(DataTable table)
|
||||
{
|
||||
this.GridRowColorsTable = table;
|
||||
|
||||
|
||||
if (table != null && table.Rows.Count > 0)
|
||||
{
|
||||
DataRow rowItem = table.Select("1=1").FirstOrDefault(x => (x["condition"] + "").Contains("COLUMN_"));
|
||||
@@ -6500,7 +6533,7 @@ namespace Lskj.Control
|
||||
/// <exception cref="System.NotImplementedException"></exception>
|
||||
protected void OnGridViewRowCellStyle(object sender, RowCellStyleEventArgs e)
|
||||
{
|
||||
if (e.RowHandle >= 0 && this.GridRowColorsTable != null && this.GridRowColorsTable.Rows.Count > 0 && (!string.IsNullOrEmpty(e.CellValue + "")|| SystemInfo.Instance.isBlankCellColor))
|
||||
if (e.RowHandle >= 0 && this.GridRowColorsTable != null && this.GridRowColorsTable.Rows.Count > 0 && (!string.IsNullOrEmpty(e.CellValue + "") || SystemInfo.Instance.isBlankCellColor))
|
||||
{
|
||||
// 渲染界面数据量过多界面刷新会很慢
|
||||
//DataTable table = this.gridControl.DataSourceTable();
|
||||
@@ -6519,7 +6552,7 @@ namespace Lskj.Control
|
||||
|
||||
// 判断单元格是否被选中
|
||||
bool isCellSelected = gridView.IsCellSelected(e.RowHandle, e.Column);
|
||||
if (!isCellSelected)
|
||||
if (!isCellSelected)
|
||||
{
|
||||
if (!string.IsNullOrWhiteSpace(model.BackColor))
|
||||
{
|
||||
@@ -6674,7 +6707,7 @@ namespace Lskj.Control
|
||||
{
|
||||
e.Appearance.ForeColor = ColorTranslator.FromHtml(SystemInfo.Instance.SelectRowForeColor);
|
||||
}
|
||||
|
||||
|
||||
//// 如果当前单元格被选中 → 画虚线
|
||||
//if (gridView.IsCellSelected(e.RowHandle, e.Column))
|
||||
//{
|
||||
@@ -6756,7 +6789,7 @@ namespace Lskj.Control
|
||||
|
||||
string PromptText = string.Empty;
|
||||
// 判断单元格值是否为 null 或空
|
||||
if ((e.CellValue == null || string.IsNullOrEmpty(e.CellValue.ToString()))&&PromptMessage.TryGetValue(e.Column.FieldName, out PromptText))
|
||||
if ((e.CellValue == null || string.IsNullOrEmpty(e.CellValue.ToString())) && PromptMessage.TryGetValue(e.Column.FieldName, out PromptText))
|
||||
{
|
||||
// 绘制默认单元格背景
|
||||
e.DefaultDraw();
|
||||
@@ -6836,7 +6869,7 @@ namespace Lskj.Control
|
||||
string[] dataReleColNames = selectColumnModel.AutoPadDataReleColName.TrimEnd(',').Split(',');
|
||||
if (dataReleColNames.Contains(e.Column.FieldName))
|
||||
{
|
||||
DataRow[] selectRows = dataTable.Select().Where(n => (n[selectColumnModel.FieldName]+"").Equals(value)).ToArray();
|
||||
DataRow[] selectRows = dataTable.Select().Where(n => (n[selectColumnModel.FieldName] + "").Equals(value)).ToArray();
|
||||
foreach (DataRow selectRow in selectRows)
|
||||
{
|
||||
int dataSourceIndex = dataTable.Rows.IndexOf(selectRow);
|
||||
@@ -6991,7 +7024,7 @@ namespace Lskj.Control
|
||||
this.SelectedRows = this.gridView.GetSelectedRows();
|
||||
if (gridView.OptionsSelection.MultiSelect == true && gridView.OptionsSelection.MultiSelectMode == GridMultiSelectMode.CheckBoxRowSelect && gridView.OptionsSelection.EnableAppearanceFocusedCell == false) this.gridView.UpdateSummary();
|
||||
|
||||
if (SystemInfo.Instance.DisplayCheckboxSelection &&!string.IsNullOrWhiteSpace(this.MultiplePrimary) && gridView.OptionsSelection.MultiSelect == true && gridView.OptionsSelection.MultiSelectMode == GridMultiSelectMode.CheckBoxRowSelect && gridView.OptionsSelection.EnableAppearanceFocusedCell == false)
|
||||
if (SystemInfo.Instance.DisplayCheckboxSelection && !string.IsNullOrWhiteSpace(this.MultiplePrimary) && gridView.OptionsSelection.MultiSelect == true && gridView.OptionsSelection.MultiSelectMode == GridMultiSelectMode.CheckBoxRowSelect && gridView.OptionsSelection.EnableAppearanceFocusedCell == false)
|
||||
{
|
||||
SelectedDataSource.Clear();
|
||||
DataRow[] dataRows = this.GetViewFocusedDataRows();
|
||||
@@ -7210,7 +7243,7 @@ namespace Lskj.Control
|
||||
DataTable table = MainImpl.GetDataTableResult(sqlValue);
|
||||
|
||||
|
||||
if (model.SearchBoxAddition && (model.FieldType == ControlType.LabAutoGridValueParam || model.FieldType == ControlType.LabAutoGridTextParam || model.FieldType == ControlType.LabAutoCompleteTextParam || model.FieldType == ControlType.LabAutoCompleteValueParam))
|
||||
if (model.SearchBoxAddition && (model.FieldType == ControlType.LabAutoGridTextParam || model.FieldType == ControlType.LabAutoCompleteTextParam))
|
||||
{
|
||||
if (this.ManuallyAddData.ContainsKey(model.FieldName))
|
||||
{
|
||||
@@ -7640,11 +7673,11 @@ namespace Lskj.Control
|
||||
btnEdit.EditValue = modelLookUp.EditValue;
|
||||
this.GridView.SetFocusedRowCellValue(model.FieldName, modelLookUp.EditValue);
|
||||
|
||||
if (OnNewLine != null && modelLookUp.EditValueList.Count>0)
|
||||
if (OnNewLine != null && modelLookUp.EditValueList.Count > 0)
|
||||
{
|
||||
OnNewLine(model.FieldName, modelLookUp.EditValueList);
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
}
|
||||
catch (Exception ex)
|
||||
@@ -9316,7 +9349,7 @@ namespace Lskj.Control
|
||||
foreach (GridColumn item in gc)
|
||||
{
|
||||
GridColumnModel model = item.Tag as GridColumnModel;
|
||||
|
||||
|
||||
//修改
|
||||
if (Modify && modifyFields.Split(',').Contains(item.FieldName.ToLower()))
|
||||
{
|
||||
@@ -9354,7 +9387,7 @@ namespace Lskj.Control
|
||||
|
||||
if (model.FieldType == ControlType.LabMemoEdit) item.OptionsColumn.AllowEdit = true;
|
||||
}
|
||||
|
||||
|
||||
//必填
|
||||
if (Required && requiredFields.Split(',').Contains(item.FieldName.ToLower()))
|
||||
{
|
||||
@@ -9427,7 +9460,7 @@ namespace Lskj.Control
|
||||
if (SystemInfo.Instance.DisplayCheckboxSelection && !string.IsNullOrWhiteSpace(this.MultiplePrimary) && gridView.OptionsSelection.MultiSelect == true && gridView.OptionsSelection.MultiSelectMode == GridMultiSelectMode.CheckBoxRowSelect && gridView.OptionsSelection.EnableAppearanceFocusedCell == false)
|
||||
{
|
||||
DataRow dataRow = this.gridView.GetDataRow(e.ListSourceRow);
|
||||
if (dataRow!=null&& dataRow.Table.Columns.Contains(this.MultiplePrimary) && SelectedDataSource.Contains(dataRow[this.MultiplePrimary]+""))
|
||||
if (dataRow != null && dataRow.Table.Columns.Contains(this.MultiplePrimary) && SelectedDataSource.Contains(dataRow[this.MultiplePrimary] + ""))
|
||||
{
|
||||
e.Handled = true;
|
||||
e.Visible = true;
|
||||
@@ -10111,6 +10144,7 @@ namespace Lskj.Control
|
||||
if (gridColumn != null && gridColumn.Tag != null && gridColumn.Tag is GridColumnModel)
|
||||
{
|
||||
GridColumnModel model = (GridColumnModel)gridColumn.Tag;
|
||||
EnsureSearchAdditionValueInDataSource(gridColumn, model);
|
||||
if (model.FormatEditBox && (model.FieldType == ControlType.LabTextInt || model.FieldType == ControlType.LabCalcText || model.FieldType == ControlType.LabAccount) && gridColumn.RealColumnEdit != null && !gridColumn.RealColumnEdit.EditFormat.FormatString.Equals(model.DataFormat))
|
||||
{
|
||||
gridColumn.RealColumnEdit.EditFormat.FormatType = DevExpress.Utils.FormatType.Numeric;
|
||||
@@ -10141,6 +10175,46 @@ namespace Lskj.Control
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// SearchBoxAddition保存文本值时,编辑器显示前把当前单元格值补进下拉数据源。
|
||||
/// 避免已保存文本不在下拉SQL结果中时,点击单元格进入编辑态显示为空。
|
||||
/// </summary>
|
||||
private void EnsureSearchAdditionValueInDataSource(GridColumn gridColumn, GridColumnModel model)
|
||||
{
|
||||
if (gridColumn == null || model == null || !model.SearchBoxAddition) return;
|
||||
if (!(ControlType.LabAutoCompleteText == model.FieldType || ControlType.LabAutoCompleteTextParam == model.FieldType ||
|
||||
ControlType.LabAutoGridText == model.FieldType || ControlType.LabAutoGridTextParam == model.FieldType)) return;
|
||||
|
||||
RepositoryItemGridLookUpEdit searchEdit = gridColumn.ColumnEdit as RepositoryItemGridLookUpEdit;
|
||||
if (searchEdit == null) return;
|
||||
|
||||
DataTable dt = searchEdit.DataSource as DataTable;
|
||||
if (dt == null) return;
|
||||
|
||||
string valueName = searchEdit.ValueMember;
|
||||
string textName = !string.IsNullOrWhiteSpace(searchEdit.DisplayMember) ? searchEdit.DisplayMember : model.TextMember;
|
||||
if (string.IsNullOrWhiteSpace(valueName) || !dt.Columns.Contains(valueName)) return;
|
||||
|
||||
Type dataType = dt.Columns[valueName].DataType;
|
||||
if (dataType != typeof(string)) return;
|
||||
|
||||
string value = gridView.GetFocusedRowCellValue(gridColumn) + "";
|
||||
if (string.IsNullOrWhiteSpace(value)) return;
|
||||
|
||||
bool exists = dt.Rows.Cast<DataRow>().Any(x =>
|
||||
(x[valueName] + "").Equals(value) ||
|
||||
(!string.IsNullOrWhiteSpace(textName) && dt.Columns.Contains(textName) && (x[textName] + "").Equals(value)));
|
||||
if (exists) return;
|
||||
|
||||
DataRow newRow = dt.NewRow();
|
||||
newRow[valueName] = value;
|
||||
if (!string.IsNullOrWhiteSpace(textName) && dt.Columns.Contains(textName))
|
||||
{
|
||||
newRow[textName] = value;
|
||||
}
|
||||
dt.Rows.Add(newRow.ItemArray);
|
||||
}
|
||||
|
||||
|
||||
/// 计算EditorButton文本所需的精确宽度
|
||||
/// </summary>
|
||||
|
||||
Reference in New Issue
Block a user