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

BackColorのオーバーライドについて

分類:[.NET]

こんにちは、お世話になります。

検索でBackColorのオーバーライドについて調べたのですが、
見た限り当てはまるものが見当たらなかったので質問します。
もしあったのでしたら私のミスです。すみません。

開発言語は Microsoft Visual Studio .NET 2003です。

ラベル(Label1)の背景色を変更したいのですができません。
オーバーライドが必要なのですよね?
そこで、今このように記述しているのですが
************************************************
Public Overrides Property BackColor() As Color

Get
Return MyBase.BackColor
End Get
Set(ByVal Value As Color)
MyBase.BackColor = Value
End Set

End Property
************************************************

これで正しいのでしょうか?

お手数ですがご教授ください。
こんばんは、はなももさん。ピラルクです。

> これで正しいのでしょうか?

文法的には正しいですが、ロジックとしては間違いでしょう。
というのは、上記コードではオーバーライドする意味が全く
見出せないコードになっているからです。

> ラベル(Label1)の背景色を変更したいのですができません。

できなかった背景色の変更というのは、どういうものでしょ
うか?
そこからの

> オーバーライドが必要なのですよね?

への着想に何か勘違いがあるような感じがするのですが。
ピラルクさんご回答ありがとうございます。助かります。

************************************************
Private Sub Form_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load

Label.BackColor = Color.Red

End Sub
************************************************

お恥ずかしいのですが、こんなロジックを書きました。
これではBackColor は変わりませんよね・・(^^;
まだはじめたばかりで、参考書で調べつつ開発をしています。
参考書に載っていたのはこのようなロジックでした。
************************************************
Public Overrides Property BackColor() As Color

Get
Return MyBase.BackColor
End Get
Set(ByVal Value As Color)
MyBase.BackColor = Value
End Set

End Property
Private sub Button1_Click(Byval sender As System.Object, Byval e As System.EventArgs) Handles Button1.Click
'背景色を変更する
UserControl1.BackColor = Color.Red
End Sub
************************************************
すみませんがまたご教授お願いいたします。
> ************************************************
> Private Sub Form_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
>
> Label.BackColor = Color.Red
>
> End Sub
> ************************************************
>
> お恥ずかしいのですが、こんなロジックを書きました。
> これではBackColor は変わりませんよね・・(^^;

通常のWindowsアプリであればそれで変わります。
(Label.BackColor のところはほんとは Label1.BackColorですよね?)

しかし、PocketPCなど用の.NET Compact Frameworkでは、
ヘルプで「.NET Compact Framework でもサポート。」と書いてあるメンバ以外は
サポートされていません。
.NET Compact Frameworkを対象とする場合は、
Labelに関してはBackColorプロパティは使えないと思います。
よねKENさんご回答ありがとうございます。

> 通常のWindowsアプリであればそれで変わります。
> (Label.BackColor のところはほんとは Label1.BackColorですよね?)
そうです。すみません。書き間違いです m(_ _)m

> しかし、PocketPCなど用の.NET Compact Frameworkでは、
> ヘルプで「.NET Compact Framework でもサポート。」と書いてあるメンバ以外は
> サポートされていません。
> .NET Compact Frameworkを対象とする場合は、
> Labelに関してはBackColorプロパティは使えないと思います。
.NET Compact Frameworkでは使えないのですね・・。
■No805に返信(はなももさんの記事)
> よねKENさんご回答ありがとうございます。
>
>>通常のWindowsアプリであればそれで変わります。
>>(Label.BackColor のところはほんとは Label1.BackColorですよね?)
> そうです。すみません。書き間違いです m(_ _)m
>
>>しかし、PocketPCなど用の.NET Compact Frameworkでは、
>>ヘルプで「.NET Compact Framework でもサポート。」と書いてあるメンバ以外は
>>サポートされていません。
>>.NET Compact Frameworkを対象とする場合は、
>>Labelに関してはBackColorプロパティは使えないと思います。
> .NET Compact Frameworkでは使えないのですね・・。
>
2003/10/02(Thu) 15:52:43 編集(投稿者)
2003/10/02(Thu) 15:52:39 編集(投稿者)

とりあえずLabelをPanel内に配置してPanelのBackColorを変更して対処しました。
------------------------------------------
Public Class Form1
Inherits System.Windows.Forms.Form
'コントロールを作成
Friend WithEvents Panel1 As System.Windows.Forms.Panel
Friend WithEvents Label1 As System.Windows.Forms.Label

Private Sub Form1(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
Panel1 = New Panel
Label1 = New Label

Panel1.Location = New Point(146, 174)
Panel1.Size = New Size(70, 30)
Label1.Location = New Point(150, 178)
Label1.Size = New Size(63, 17)
Label1.Text = "ラベル1"
Panel1.BackColor = System.Drawing.Color.Red
Me.Controls.Add(Panel1)
Panel1.Controls.Add(Label1)

End Sub

End Class
------------------------------------------
この方法で色をつけるのは可能ですが、
ラベルに文字を表示しているのでその文字は隠れてしまいますね・・
そこはまた試行錯誤してやってみたいと思います。

ピラルクさん、よねKENさんご回答ありがとうございました。 m(_ _)m
またなにかありましたらよろしくお願い致します。
解決済み!

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