- PR -

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

投稿者投稿内容
はなもも
会議室デビュー日: 2003/09/10
投稿数: 12
投稿日時: 2003-10-02 14:46
Hasumiさん、なちゃさんご回答ありがとうございます。

なちゃさんへ
>でも、Compact Framework だということははなももさん以外の人にはわからないわけで、
>こういった情報を書くことが必要になるということです。
># もしこの情報がなければ、なぜ出来ないんだと皆首をかしげることになります。
ご意見はごもっともです。
自分の開発環境をどう説明したらいいのかわからず
⇒ 開発言語は Microsoft Visual Studio .NET 2003です。
⇒ 今、私はプロジェクトを新規作成するときに、 「スマートデバイスアプリケーション」
⇒ (Pocket PC およびリソースに制約のあるデバイス用の アプリケーションを
⇒ 作成するためのプロジェクト) を選択しています。
と書いたのでした。
今後は「開発言語は Microsoft Visual Studio .NET 2003(.NET Compact Framework)」
と書いたらわかっていただけるのでしょうか?

>というわけで、えらそうで申し訳ないですが、このような情報を示すことが
>重要なのだということを納得していただければと思います。
以後気をつけます。すみませんでした。


Hasumiさんへ
>私はLabelをPanel内に配置してPanelのBackColorを変更して対処しました。
>panel1.Controls.Add(label1);
>panel1.BackColor = System.Drawing.Color.Red;
やはり.NET Compact Framework でのLabelのBackColorの設定は無理なのですね。
Hasumiさんの教えてくれた方法で試してみました。
------------------------------------------
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

End Sub

End Class
------------------------------------------
というように書いてみました。
この方法で色をつけるのは可能ですが、
ラベルに文字を表示しているので文字が隠れてしまいますね・・

Hasumi
ベテラン
会議室デビュー日: 2002/07/23
投稿数: 78
お住まい・勤務地: 神奈川・東京
投稿日時: 2003-10-02 15:13
Hasumiです。

引用:

ラベルに文字を表示しているので文字が隠れてしまいますね・・



[C#]
panel1.Controls.Add(label1);

[VB.NET]
Panel1.Controls.Add(Label1)

としてlabel1をpanel1コントロールのControl.ControlCollectionに
追加してください。

デザイナ上で行う場合は、まずパネルコントロールを
配置し、その中にラベルコントロールを配置します。

[ メッセージ編集済み 編集者: Hasumi 編集日時 2003-10-02 15:19 ]
はなもも
会議室デビュー日: 2003/09/10
投稿数: 12
投稿日時: 2003-10-02 15:32
Hasumiさんご回答ありがとうございます。

>[VB.NET]
>Panel1.Controls.Add(Label1)

>としてlabel1をpanel1コントロールのControl.ControlCollectionに追加してください。
すみません。抜けてました

------------------------------------------
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
Label1.BringToFront()
Panel1.SendToBack()
'フォームにタブコントロールを追加
Me.Controls.Add(Panel1)
Panel1.Controls.Add(Label1)

End Sub

End Class
------------------------------------------
というように書いてみましたがさきほどと同じく、
ラベルの文字がパネルに隠れて見えません。
Hasumi
ベテラン
会議室デビュー日: 2002/07/23
投稿数: 78
お住まい・勤務地: 神奈川・東京
投稿日時: 2003-10-02 15:49
Hasumiです。

C#とVB.NETで違いがあるのかと思いVB.NETで確認してみました。
以下のコードできちんと動作しました。
(以下のコードはWindows フォーム デザイナで作成されたものです。)
コード:
Private Sub InitializeComponent()

Me.MainMenu1 = New System.Windows.Forms.MainMenu
Me.Panel1 = New System.Windows.Forms.Panel
Me.Label1 = New System.Windows.Forms.Label
'
'Panel1
'
Me.Panel1.BackColor = System.Drawing.Color.Red
Me.Panel1.Controls.Add(Me.Label1)
Me.Panel1.Location = New System.Drawing.Point(96, 80)
Me.Panel1.Size = New System.Drawing.Size(104, 88)
'
'Label1
'
Me.Label1.Location = New System.Drawing.Point(24, 32)
Me.Label1.Size = New System.Drawing.Size(64, 24)
Me.Label1.Text = "Label1"
'
'Form1
'
Me.Controls.Add(Me.Panel1)
Me.Menu = Me.MainMenu1
Me.Text = "Form1"
End Sub


また、
引用:
やはり.NET Compact Framework でのLabelのBackColorの設定は無理なのですね。


なちゃさんが指摘されているようにLabelのBackColorの設定は無理なように思えるのですが、
引用:
これは、ヘルプのLabelのBackColorに、「.NET Compact Framework でもサポート。」という記述がないことから分かります。


こちらではSupported by the .NET Compact Framework.となっています。

また、
引用:
label1.BackColor = System.Drawing.Color.Red;
textBox1.BackColor = label1.BackColor;


が動作することからもLabelのBackColorはサポートされているように思われます。
しかし、見た目上は変化がありません。

なので
引用:
.NET Compact Framework でのLabelのBackColorプロパティの
サポート状況はなんと言うか微妙です。


と書きました。これがバグなのかどうかは不明です。

[ メッセージ編集済み 編集者: Hasumi 編集日時 2003-10-02 15:53 ]

[ メッセージ編集済み 編集者: Hasumi 編集日時 2003-10-02 15:55 ]
なちゃ
ぬし
会議室デビュー日: 2003/06/11
投稿数: 872
投稿日時: 2003-10-02 16:05
> 自分の開発環境をどう説明したらいいのかわからず
> ⇒ 開発言語は Microsoft Visual Studio .NET 2003です。
> ⇒ 今、私はプロジェクトを新規作成するときに、 「スマートデバイスアプリケーション」
> ⇒ (Pocket PC およびリソースに制約のあるデバイス用の アプリケーションを
> ⇒ 作成するためのプロジェクト) を選択しています。
> と書いたのでした。
> 今後は「開発言語は Microsoft Visual Studio .NET 2003(.NET Compact Framework)」
> と書いたらわかっていただけるのでしょうか?

ごめんなさい、あれを書いたのは、「今度質問などされるとき」は、最初にそういった情報や、ご自身がどういう考えでそうされたのか(あるいはその元ネタなど)を書くようにされると良いと思います、という意図で書きました。

ですので、決して「開発環境の説明の仕方がなっていない」などというつもりではありませんです。
はなもも
会議室デビュー日: 2003/09/10
投稿数: 12
投稿日時: 2003-10-02 16:08
Hasumiさん、度々すみません。ご返答ありがとうございます

Hasumiさんが書いてくれたように、
>--------------------------------------------------------------------------------
>Private Sub InitializeComponent()
> Me.MainMenu1 = New System.Windows.Forms.MainMenu
> Me.Panel1 = New System.Windows.Forms.Panel
> Me.Label1 = New System.Windows.Forms.Label
> '
> 'Panel1
> '
> Me.Panel1.BackColor = System.Drawing.Color.Red
> Me.Panel1.Controls.Add(Me.Label1)
> Me.Panel1.Location = New System.Drawing.Point(96, 80)
> Me.Panel1.Size = New System.Drawing.Size(104, 88)
> '
> 'Label1
> '
> Me.Label1.Location = New System.Drawing.Point(24, 32)
> Me.Label1.Size = New System.Drawing.Size(64, 24)
> Me.Label1.Text = "Label1"
> '
> 'Form1
> '
> Me.Controls.Add(Me.Panel1)
> Me.Menu = Me.MainMenu1
> Me.Text = "Form1"
>End Sub

>--------------------------------------------------------------------------------
と「Private Sub InitializeComponent()」の中に記述したら出来ました!!(^^)
※今までは「Private Sub Form1(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load 」の中に書いていました

ほんとうにありがとうございました。助かりました。
またなにかありましたらご教授お願い致します。

スキルアップ/キャリアアップ(JOB@IT)