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
}