Watermarkプロパティを使用すれば、コントロールが未入力のときや和暦表示できない日付が設定された場合に、代わりに表示するテキスト(ウォーターマーク)を設定することができます。 Watermarkプロパティは、DateWatermarkオブジェクトを参照し、 DateWatermarkオブジェクトのプロパティを使用して以下の代替テキストを設定できます。
プロパティ |
代替テキストの内容 |
DisplayNull |
コントロールにフォーカスがなく、未入力のときの代替テキスト |
DisplayEmptyEra |
コントロールにフォーカスがなく、その値が和暦表示できないときの代替テキスト |
Null |
コントロールにフォーカスがあり、未入力のときの代替テキスト |
EmptyEra |
コントロールにフォーカスがあり、その値が和暦表示できないときの代替テキスト |
 |
- 和暦表示が可能な日付の範囲は、1868年9月8日~2087年12月31日です。
- DisplayEmptyEraおよびEmptyEraプロパティは、DisplayFormat、Formatプロパティによる書式設定で和暦を指定している場合に有効です。
|
これらのプロパティはWatermarkクラスを参照し、次の2つのプロパティを設定することができます。

(図)代替テキストを表示した日付時刻コントロール
次のサンプルコードは、上図のような代替テキストを表示する方法です。
' フォーカスがないときの代替テキスト
GcDateTime1.Watermark.DisplayNull.Text = "生年月日を入力してください"
GcDateTime1.Watermark.DisplayNull.ForeColor = System.Drawing.Color.LightSeaGreen
GcDateTime1.Watermark.DisplayEmptyEra.Text = "和暦表示ができません"
GcDateTime1.Watermark.DisplayEmptyEra.ForeColor = System.Drawing.Color.Gray
' フォーカスがあるときの代替テキスト
GcDateTime1.Watermark.Null.Text = "和暦で入力してください"
GcDateTime1.Watermark.Null.ForeColor = System.Drawing.Color.LightPink
GcDateTime1.Watermark.EmptyEra.Text = "和暦表示ができません"
GcDateTime1.Watermark.EmptyEra.ForeColor = System.Drawing.Color.Red
// フォーカスがないときの代替テキスト
GcDateTime1.Watermark.DisplayNull.Text = "生年月日を入力してください";
GcDateTime1.Watermark.DisplayNull.ForeColor = System.Drawing.Color.LightSeaGreen;
GcDateTime1.Watermark.DisplayEmptyEra.Text = "和暦表示ができません";
GcDateTime1.Watermark.DisplayEmptyEra.ForeColor = System.Drawing.Color.Gray;
// フォーカスがあるときの代替テキスト
GcDateTime1.Watermark.Null.Text = "和暦で入力してください";
GcDateTime1.Watermark.Null.ForeColor = System.Drawing.Color.LightPink;
GcDateTime1.Watermark.EmptyEra.Text = "和暦表示ができません";
GcDateTime1.Watermark.EmptyEra.ForeColor = System.Drawing.Color.Red;
フィールドに何も入力されていないときに表示するプロンプト文字は、
PromptCharプロパティを使用して設定します。 プロンプト文字は、
DateFormat.Patternプロパティで定義された書式の入力位置にプレースホルダとして表示され、ユーザに入力を促します。なお、PromptCharプロパティには、半角または全角の文字を設定できますが、文字列は設定できません。

(図)プロンプト文字("_")
代替テキストを設定している場合、コントロールに文字が入力されていないときには代替テキストの設定が優先されます。 未入力時に、DateFormat.Patternプロパティで設定したリテラル文字列を含む書式とプロンプト文字を表示するには、次のサンプルコードのように、代替テキストを空の文字列に設定します。
GcDateTime1.Watermark.DisplayNull.Text = String.Empty
GcDateTime1.Watermark.Null.Text = String.Empty
GcDateTime1.PromptChar = '_'
GcDateTime1.Watermark.DisplayNull.Text = string.Empty;
GcDateTime1.Watermark.Null.Text = string.Empty;
GcDateTime1.PromptChar = '_';