DOBON.NET DOBON.NETプログラミング掲示板過去ログ

C# 派生クラス

環境/言語:[C#]
分類:[.NET]

はじめまして。C#を勉強してる初心者です。

DataGridで任意のセルの色を変えようとして、派生クラスをつくり、
それについては成功したんですが、どうせならその派生クラスでプロパティ
を設定するメソッドを作ろうと思い、思考錯誤しているのですがうまく
いきません。。。

載せるのが恥ずかしくなりますが以下が自分で作った派生クラスです。

public class MyDataGridTextBoxColumn : DataGridTextBoxColumn
{
protected override void Paint(
Graphics g,
Rectangle bounds,
CurrencyManager source,
int rowNum,
Brush backBrush,
Brush foreBrush,
bool alignToRight)
{
foreBrush = new SolidBrush(Color.Black);
backBrush = new SolidBrush(Color.DarkGray);
base.Paint(g,bounds,source,rowNum,backBrush,foreBrush,alignToRight);
}

public System.Windows.Forms.DataGridTextBoxColumn NewDataGridTextBoxColumn(
System.Windows.Forms.HorizontalAlignment Alignment,
string Format,
string NullText,
string HeaderText,
string MappingName,
bool ReadOnly,
int Width
)
{
this.Alignment = Alignment;
this.Format = Format;
this.NullText = NullText;
this.HeaderText = HeaderText;
this.MappingName = MappingName;
this.ReadOnly = ReadOnly;
this.Width = Width;

return ;
}

}

ここから先が全然わからず困っています。
どうかご教授よろしくおねがいします。
  • 題名: Re[1]: C# 派生クラス
  • 著者: java.lang.Nullpo
  • 日時: 2004/10/26 11:41:49
  • ID: 6991
  • この記事の返信元:
  • この記事への返信:
    • (なし)
  • ツリーを表示
■No6989に返信(ysさんの記事)
> どうせならその派生クラスでプロパティを設定するメソッドを作ろうと思い

Java(TM)じゃないのですから、プロパティを設定するのはプロパティでやればよいでしょう。
メソッドをわざわざ利用する必要はありません。

まずは、property プロシージャを調べると良いでしょう。
> DataGridで任意のセルの色を変えようとして、派生クラスをつくり、
> それについては成功したんですが、どうせならその派生クラスでプロパティ
> を設定するメソッドを作ろうと思い、思考錯誤しているのですがうまく
> いきません。。。

「プロパティを設定するメソッド」とういのがNewDataGridTextBoxColumnで、returnで何を返したらいいのか分からないというご質問なのだと理解します。

自分自身のプロパティを変更するのであれば返り値は必要ないので、voidとし、returnは削除します。つまり、次のような感じです。

public void NewDataGridTextBoxColumn(
System.Windows.Forms.HorizontalAlignment Alignment,
string Format,
string NullText,
string HeaderText,
string MappingName,
bool ReadOnly,
int Width
)
{
this.Alignment = Alignment;
this.Format = Format;
this.NullText = NullText;
this.HeaderText = HeaderText;
this.MappingName = MappingName;
this.ReadOnly = ReadOnly;
this.Width = Width;
}

}

ただ、NewDataGridTextBoxColumnという名前は自分自身のプロパティを変更するという感じではなく、Create...のように静的メソッドとして新しいインスタンスを返すメソッドという感じがしてしまいますが。
  • 題名: Re[2]: C# 派生クラス
  • 著者: ys
  • 日時: 2004/10/27 10:55:13
  • ID: 7017
  • この記事の返信元:
  • この記事への返信:
    • (なし)
  • ツリーを表示
■No7010に返信(管理人さんの記事)
> 「プロパティを設定するメソッド」とういのがNewDataGridTextBoxColumnで、returnで何を返したらいいのか分からないというご質問なのだと理解します。
すみません、その通りです。肝心な事を書き忘れてました・・・

> 自分自身のプロパティを変更するのであれば返り値は必要ないので、voidとし、returnは削除します。つまり、次のような感じです。
言われてみればその通りです。単純なことを見落としていました^^;
java.lang.Nullpoさんがおっしゃられた通り、わざわざメソッドにする必要もないかもしれませんね。(コード量も変わらないし・・)

> ただ、NewDataGridTextBoxColumnという名前は自分自身のプロパティを変更するという感じではなく、Create...のように静的メソッドとして新しいインスタンスを返すメソッドという感じがしてしまいますが。
確かにプロパティを設定するだけのメソッドの名前が「NewDataGridTextBoxColumn」ではおかしいですね^^; 変更します。


無事、解決できました。
java.lang.Nullpoさん、管理人さん、ご教授ありがとうございました。
解決済み!

DOBON.NET | プログラミング道 | プログラミング掲示板