えムナウのプログラミングのページ

えムナウ の とどけもの

 Logo えムナウBlog@AILight
えムナウBlog@Wankuma

目次

利用状況

イメージ ギャラリー

カテゴリ

Links
 

inetaj

MSMVPロゴ
MSMVP Visual C# 2005/01-2007/12
SpreadCell.cs スプレッドシートセル位置クラスです。

using System;
using System.ComponentModel;

namespace SpreadControl
{
        #region スプレッドシートセル位置クラス
        [Serializable]
        [TypeConverter(typeof(SpreadCellConverter))]
        public class SpreadCell
        {
                private int _columnNumber ;
                private int _rowNumber ;

                public SpreadCell()
                {
                        _columnNumber = -1 ;
                        _rowNumber = -1 ;
                }

                public SpreadCell(int column, int row)
                {
                        _columnNumber = column ;
                        _rowNumber = row ;
                }

                public int ColumnNumber         { get { return _columnNumber ; } }
                public int RowNumber            { get { return _rowNumber ; } }
        }
        #endregion

        #region タイプコンバーター
        internal class SpreadCellConverter : ExpandableObjectConverter 
        {
                public override bool CanConvertTo(ITypeDescriptorContext context, Type destinationType) 
                {
                        if (destinationType == typeof(string)) return true;
                        return base.CanConvertTo(context, destinationType);
                }
                public override object ConvertTo(ITypeDescriptorContext context, 
                        System.Globalization.CultureInfo culture, object value, Type destType) 
                {
                        if (destType == typeof(string) && value is SpreadCell) 
                        {
                                SpreadCell ic = (SpreadCell)value;
                                return ic.ColumnNumber.ToString() + "," + ic.RowNumber.ToString() ;
                        }
                        return base.ConvertTo(context, culture, value, destType);
                }   
        }
        #endregion
}