예제 #1
0
        /// <summary>
        /// 用唯一值实现GetHashCode
        /// </summary>
        public override int GetHashCode()
        {
            int hash = 57;

            hash = 27 * hash * DisplayMember.GetHashCode();
            return(hash);
        }
예제 #2
0
 public override int GetHashCode()
 {
     unchecked
     {
         return(((DisplayMember != null ? DisplayMember.GetHashCode() : 0) * 397) ^ (ValueMember != null ? ValueMember.GetHashCode() : 0));
     }
 }
예제 #3
0
        private int SuggestedDropDownWidth()
        {
            int widestStringInPixels = 0;

            foreach (object obj in Items)
            {
                string       toCheck;
                PropertyInfo pinfo;
                Type         objectType = obj.GetType();
                if (DisplayMember.CompareTo("") == 0)
                {
                    toCheck = obj.ToString();
                }
                else
                {
                    pinfo   = objectType.GetProperty(DisplayMember);
                    toCheck = pinfo.GetValue(obj, null).ToString();
                }
                if (TextRenderer.MeasureText(toCheck, Font).Width > widestStringInPixels)
                {
                    widestStringInPixels = TextRenderer.MeasureText(toCheck, Font).Width;
                }
            }
            return(widestStringInPixels + 15);
        }
예제 #4
0
        public override bool Equals(object obj)
        {
            DbLookupAttribute o = obj as DbLookupAttribute;

            if (o != null)
            {
                return(DisplayMember.Equals(o.DisplayMember) && ValueMember.Equals(o.ValueMember));
            }
            return(false);
        }
예제 #5
0
        private string GetTextValue(object value)
        {
            if (value == null)
            {
                return(null);
            }
            string text = !DisplayMember.IsNullOrEmpty()
                    ? value.GetType().GetProperty(DisplayMember)?.GetValue(value) as string ?? value.ToString()
                    : value.ToString();

            return(HtmlDecode ? text.HtmlDecode() : text);
        }
예제 #6
0
        public override int GetHashCode()
        {
            int multiplier = 23;

            if (hashCode == 0)
            {
                int code = 133;
                code     = multiplier * code + DisplayMember.GetHashCode();
                code     = multiplier * code + ValueMember.GetHashCode();
                hashCode = code;
            }
            return(hashCode);
        }
예제 #7
0
 protected override void OnFormat(ListControlConvertEventArgs e)
 {
     base.OnFormat(e);
     if (HtmlDecode)
     {
         if (!DisplayMember.IsNullOrEmpty())
         {
             var property = e.ListItem.GetType().GetProperty(DisplayMember);
             if (property != null)
             {
                 e.Value = WebUtility.HtmlDecode(property.GetValue(e.ListItem) as string);
             }
         }
     }
 }
예제 #8
0
        public S52DisplaySetting ToS52DisplaySetting()
        {
            var setting = new S52DisplaySetting();

            setViewingGroup(setting);

            switch (this.DisplaySchema)
            {
            case SeaMap.DisplaySchema.None:
                setting.Display = SeeCool.ECDIS.S52.DisplaySchema.None; break;

            case SeaMap.DisplaySchema.Base:
                setting.Display = SeeCool.ECDIS.S52.DisplaySchema.Base; break;

            case SeaMap.DisplaySchema.Standard:
                setting.Display = SeeCool.ECDIS.S52.DisplaySchema.Standard; break;

            case SeaMap.DisplaySchema.All:
                setting.Display = SeeCool.ECDIS.S52.DisplaySchema.All; break;
            }
            switch (this.Palette)
            {
            case SeaMap.ColorSchema.None:
                setting.Palette = SeeCool.ECDIS.S52.ColorSchema.None; break;

            case SeaMap.ColorSchema.Day:
                setting.Palette = SeeCool.ECDIS.S52.ColorSchema.Day; break;

            case SeaMap.ColorSchema.Dusk:
                setting.Palette = SeeCool.ECDIS.S52.ColorSchema.Dusk; break;

            case SeaMap.ColorSchema.Night:
                setting.Palette = SeeCool.ECDIS.S52.ColorSchema.Night; break;
            }
            setting.ShowCompass        = DisplayMember.HasFlag(DisplayMember.ShowCompass);
            setting.ShowDptareSafeLine = DisplayMember.HasFlag(DisplayMember.ShowDeepWaterSafeLine);
            setting.ShowImportantText  = DisplayMember.HasFlag(DisplayMember.ShowImportantWords);
            setting.ShowOtherText      = DisplayMember.HasFlag(DisplayMember.ShowOtherWords);
            setting.ShowLightDesc      = DisplayMember.HasFlag(DisplayMember.ShowLamplightDescription);
            setting.ShowObstacle       = DisplayMember.HasFlag(DisplayMember.ShowBarrier);
            setting.ShowGrid           = DisplayMember.HasFlag(DisplayMember.ShowLatAndLonNet);
            setting.ShowSimplePoint    = DisplayMember.HasFlag(DisplayMember.ShowSeaMapSymbol);
            setting.ShowScaleBar       = DisplayMember.HasFlag(DisplayMember.ShowScale);
            setting.ShowPlainAreaBound = DisplayMember.HasFlag(DisplayMember.ShowSymbolRegion);
            setting.ShowSoundg         = DisplayMember.HasFlag(DisplayMember.ShowDeepWaterPoint);
            setting.ShowScaleBar       = DisplayMember.HasFlag(DisplayMember.ShowScale);
            return(setting);
        }
예제 #9
0
 private void CommonPickUpValueListUC_Load(object sender, EventArgs e)
 {
     dgvData.AutoGenerateColumns = false;
     foreach (var member in DisplayMember.Split(','))
     {
         dgvData.Columns.Add(new DataGridViewTextBoxColumn()
         {
             HeaderText       = member.Replace("_", " "),
             Name             = member,
             DataPropertyName = member,
             ReadOnly         = true,
             AutoSizeMode     = DataGridViewAutoSizeColumnMode.Fill,
         });
     }
     dgvData.DataSource = Data;
 }
예제 #10
0
        private void InitializeAutoCompleteSource()
        {
            if (base.AutoCompleteCustomSource != null)
            {
                AutoCompleteStringCollection _customsource = base.AutoCompleteCustomSource;
                if (_customsource == null)
                {
                    _customsource = new AutoCompleteStringCollection();
                }

                _customsource.Clear();
                if (DataSource != null)
                {
                    if (!String.IsNullOrEmpty(DisplayMember.RLTrim()))
                    {
                        if (DataSource.Columns.Contains(DisplayMember))
                        {
                            DataView  _view  = DataSource.DefaultView;
                            DataTable _table = _view.ToTable();
                            _table.DefaultView.Sort = "[" + DisplayMember + "]";
                            DataView  _viewsorted  = _table.DefaultView;
                            DataTable _tablesorted = _viewsorted.ToTable();

                            foreach (DataRow rw in _tablesorted.Rows)
                            {
                                string _text = "";
                                if (!Materia.IsNullOrNothing(rw[DisplayMember]))
                                {
                                    _text = rw[DisplayMember].ToString();
                                }
                                if (!_customsource.Contains(_text))
                                {
                                    _customsource.Add(_text);
                                }
                            }

                            _tablesorted.Dispose();  _table.Dispose();
                            _tablesorted = null; _table = null;
                            Materia.RefreshAndManageCurrentProcess();
                        }
                    }
                }
            }
        }
예제 #11
0
        private void DataSourcedComboBox_TextChanged(object sender, EventArgs e)
        {
            if (!_detectinput)
            {
                return;
            }
            if (DataSource != null)
            {
                if (!string.IsNullOrEmpty(DisplayMember.RLTrim()))
                {
                    if (DataSource.Columns.Contains(DisplayMember))
                    {
                        DataTable _viewtable = DataSource.DefaultView.ToTable();
                        DataRow[] rws        = _viewtable.Select("CONVERT([" + DisplayMember + "], System.String) LIKE '" + Text.ToSqlValidString(true) + "'");
                        if (rws.Length > 0)
                        {
                            if (!string.IsNullOrEmpty(ValueMember.RLTrim()))
                            {
                                if (DataSource.Columns.Contains(ValueMember))
                                {
                                    C1FlexGrid _grid  = _dropdown.Grid;
                                    int        _index = _grid.FindRow(rws[0][ValueMember], _grid.Rows.Fixed, _grid.Cols.Fixed, false) - 1;
                                    _selectedindex = (_index < 0 ? -1 : _index);
                                    OnSelectedIndexChanged(new EventArgs());
                                    _selectedvalue = rws[0][ValueMember];
                                    OnSelectedValueChanged(new EventArgs());
                                }
                                else
                                {
                                    bool _changed = false;
                                    _changed       = (_selectedindex != -1);
                                    _selectedindex = -1;
                                    if (_changed)
                                    {
                                        OnSelectedIndexChanged(new EventArgs());
                                    }

                                    _changed       = (_selectedvalue != null);
                                    _selectedvalue = null;
                                    if (_changed)
                                    {
                                        OnSelectedValueChanged(new EventArgs());
                                    }
                                }
                            }
                            else
                            {
                                bool _changed = false;
                                _changed       = (_selectedindex != -1);
                                _selectedindex = -1;
                                if (_changed)
                                {
                                    OnSelectedIndexChanged(new EventArgs());
                                }

                                _changed       = (_selectedvalue != null);
                                _selectedvalue = null;
                                if (_changed)
                                {
                                    OnSelectedValueChanged(new EventArgs());
                                }
                            }
                        }
                        else
                        {
                            bool _changed = false;
                            _changed       = (_selectedindex != -1);
                            _selectedindex = -1;
                            if (_changed)
                            {
                                OnSelectedIndexChanged(new EventArgs());
                            }

                            _changed       = (_selectedvalue != null);
                            _selectedvalue = null;
                            if (_changed)
                            {
                                OnSelectedValueChanged(new EventArgs());
                            }
                        }
                        _viewtable.Dispose(); _viewtable = null;
                        Materia.RefreshAndManageCurrentProcess();
                    }
                    else
                    {
                        bool _changed = false;
                        _changed       = (_selectedindex != -1);
                        _selectedindex = -1;
                        if (_changed)
                        {
                            OnSelectedIndexChanged(new EventArgs());
                        }

                        _changed       = (_selectedvalue != null);
                        _selectedvalue = null;
                        if (_changed)
                        {
                            OnSelectedValueChanged(new EventArgs());
                        }
                    }
                }
                else
                {
                    bool _changed = false;
                    _changed       = (_selectedindex != -1);
                    _selectedindex = -1;
                    if (_changed)
                    {
                        OnSelectedIndexChanged(new EventArgs());
                    }

                    _changed       = (_selectedvalue != null);
                    _selectedvalue = null;
                    if (_changed)
                    {
                        OnSelectedValueChanged(new EventArgs());
                    }
                }
            }
            else
            {
                bool _changed = false;
                _changed       = (_selectedindex != -1);
                _selectedindex = -1;
                if (_changed)
                {
                    OnSelectedIndexChanged(new EventArgs());
                }

                _changed       = (_selectedvalue != null);
                _selectedvalue = null;
                if (_changed)
                {
                    OnSelectedValueChanged(new EventArgs());
                }
            }
        }
예제 #12
0
 /// <summary>
 /// 移动到目标位置
 /// </summary>
 /// <param name="fromX"></param>
 /// <param name="fromY"></param>
 /// <param name="toX"></param>
 /// <param name="toY"></param>
 public void Move(int fromX, int fromY, int toX, int toY)
 {
     Debug.Log(Id + "单位移动:" + toX + "," + toY + " from:" + fromX + "," + fromY + " now:" + X + "," +
               Y);
     this.Wait(DisplayMember.Do(new MoveDisplayCommand(fromX, fromY, toX, toY, this, DisplayMember)));
 }
예제 #13
0
 if (string.Equals(DisplayMember, value))
 {
     return;