VB6で座標平面を作成するプログラムにおいて、labelを前面に出す方法

このQ&Aのポイント
  • VB6で座標平面を作成するプログラムにおいて、lineコントロールが前面に表示されてしまい、見づらい状況になります。labelを前面に出すためには、以下の手順を実行します。
  • まず、lineコントロールとlabelコントロールを重ねるように配置します。次に、labelコントロールに対してフォントサイズやフォントスタイルを設定します。また、lineコントロールに対しては境界線の幅や色を指定します。最後に、labelコントロールを背面から前面に移動させることで、labelが前面に表示されるようになります。
  • 以上の手順を実行することで、VB6で作成した座標平面プログラムにおいてlabelを前面に表示することができます。これにより、プログラムの見やすさが向上し、より使いやすいプログラムとなります。
回答を見る
  • ベストアンサー

labelを前面に出したい

vb6で座標平面を作成するプログラムを作っています。lineやlabelを配列で設置しましたが、 lineが前面に出てしまい、とても見づらいものになってしまいました。labelを前面に出すにはどうしたらよいでしょうか。 (1)lineコントロールを配置し、index=0 (2)labelコントロールを配置し、index=0 (3)(1)と(2)が重なるようにします(label1(0)が前面に出ています)。 (4)以下を実行します Private Sub Form_Load() Form1.ScaleMode = 3 Label1(0).FontSize = 15 Label1(0).FontBold = True Line1(0).BorderWidth = 2 Line1(0).BorderColor = &H80000005 Load Line1(1) With Line1(1) .X1 = 100 .X2 = 100 .Y1 = 0 .Y2 = 200 .Visible = True End With Load Label1(1) With Label1(1) .Left = 98 .Top = 80 .Visible = True End With End Sub (5)label(1)が背面になります。

質問者が選んだベストアンサー

  • ベストアンサー
  • emsuja
  • ベストアンサー率50% (1034/2055)
回答No.1

End Sub の前に Label1(1).ZOrder 0 を入れてみてください

nebokken
質問者

お礼

ズーと悩み続けていました。あれこれと試してみましたが、だめでした。 ありがとうございます。

関連するQ&A

  • MDIParent1に、ToolStripButton1とLabel1

    MDIParent1に、ToolStripButton1とLabel1、Label2を 配置しています。 やりたいことは  (1)ToolStripButton1をクリックしてForm1を表示させる。  (2)Label1をクリックしてForm1のTextをLabel1のTextに変更する。  (3)Label2をクリックしてForm1のTextをLabel2のTextに変更する。 最初に表示させたForm1のTextのみを変更させる。 現在下記のプログラムを実行したのですが Label1をクリックすると新たにForm1が表示されてしまいます。 (Form1のTextはLabel1のTextに変更されている) Label2をクリックすると新たにForm1が表示されてしまいます。 (Form1のTextはLabel2のTextに変更されている) クリックする毎にForm1がふえていきます。 対策方法を教えてください。 Public Class MDIParent1 Dim F1 As Form1  Private Sub ToolStripButton1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles ToolStripButton1.Click Dim frm As New Form1 frm.MdiParent = Me frm.Show() End Sub   Private Sub Label1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Label1.Click F1 = New Form1 F1.Visible = True F1.Text = Label1.Text Label1.BorderStyle = BorderStyle.Fixed3D Label2.BorderStyle = BorderStyle.None End Sub   Private Sub Label2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Label2.Click F1 = New Form1 F1.Visible = True F1.Text = Label2.Text Label2.BorderStyle = BorderStyle.Fixed3D Label1.BorderStyle = BorderStyle.None End Sub End Class

  • VBで動的に作成したパネルの上にラベルを乗せるには?

    VB6にてプログラムで動的に作成したフレーム(Frame)の上に、動的に作成したラベル(Label)を乗せることが出来ません。 どうすれば、ラベルをフレームの上に乗せることが出来るようになるでしょうか? どなたか分かる方がいらっしゃいましたら、ご教授願います。 なお、フレームとラベルの作成は以下のようなやり方で行っています。 ' Form1 : 表示フォーム Private lbl As New LabelClass ' ラベル作成クラス Private frm As New FrameClass ' フレーム作成クラス Private Sub Form_Load() Call lbl.LabelMake(Form1, "lbl1") With lbl.makelbl .Caption = "テストラベル" .AutoSize = True .Top = 500 .Left = 500 .Visible = True End With Call frm.FrameMake(Form1, "frm1") With frm.makefrm .Caption = "テストフレーム" .Width = 2000 .Height = 2000 .Visible = True End With End Sub ' LabelClass : ラベル作成クラス Public WithEvents makelbl As Label Public Sub LabelMake(form As Object, name As String) Set makelbl = form.Controls.Add("VB.Label", name) End Sub ' FrameClass : フレーム作成クラス Public WithEvents makefrm As Frame Public Sub FrameMake(form As Object, name As String) Set makefrm = form.Controls.Add("VB.Frame", name) End Sub ※nameはオブジェクト名です

  • Excel VBAにて2つの処理を同時実行可能?

    是非お力をお貸し下さい。 よろしくお願いします。 Windows XP Excel2003 (VB6.0) メイン処理が非常に時間がかかるため、フォームを表示させ 文字(Label)を点滅させて「動いている(ハングアップしていない)」ことを 使用者に伝えようとしています。 --- Form1内のコード(メイン) --- Sub Main() Form2.Show vbModeless [ ~メイン処理~ ] End Sub --- Form2内のコード --- Sub UserForm_Initialize() Call Blink End Sub --- 標準モジュール内のコード --- Sub Blink() If Form2.Label1.Visible = True Then Form2.Label1.Visible = False Else Form2.Label1.Visible = True End If Form2.Repaint DoEvents Application.OnTime Now + TimeValue("00:00:01"), "Blink" End Sub これを実行すると、メイン処理が終了した後にForm2内の文字が 点滅します。 実現したいのは「使用者が動いていることを(ハングアップしていない ことを)確認出来る」という点です。 どうぞ よろしくお願いします。

  • VB6 動的追加コントロールの値変更

    お世話になります。VB6初心者です。 動的追加コントロールの値変更で困っています。 Form3にFrame1をコントロール配列で1つ置いています。 ループ処理でFrame1をループ分LOADし、そのフレームの上にチェックボックスを動的に追加していく処理をしています。この動的に追加したチェックボックスの値の変更ができません。 ちなみに値やキャプションの取得はできます。 どなたかご教授願います。 Private Sub Command1_Click() Dim CHKbox(4) As VB.CheckBox Dim i As Integer For i = 1 To 4 Load Form3.Frame1(i) With Form3.Frame1(i) .Top = Form3.Frame1(i - 1).Top + 450 .Visible = True .Caption = "フレーム" & i End With Set CHKbox(i) = Controls.Add("VB.Checkbox", "CHKbox" & i, Form3.Frame1(i)) With CHKbox(i) .Move 2000, 200, 1300, 180 .Visible = True .Caption = "チェック" & i End With Next MsgBox CHKbox(1).Value  `値の取得は可能ですが CHKbox(1).Value = True   `値の変更ができません End Sub

  • TabStripコントロールの上にLabelコントロールを乗せるには?

    VB6でTabStripコントロールの上にLabelコントロールを乗せようとしています。 もちろん、コンテナに積んで乗せてやれば乗ることはわかっていますが、コンテナに積まず直接乗せようとすると乗りません。配置した後に最前面を指定しても最前面に出てきません。 FrameなどのコンテナのBorderStyleを無にしてFrameに積んでTabStripに配置するという方法はとりたくありません。 TextBoxやChkeckBoxなどのコントロールは直接乗るのにLabelは乗りません。 これはVB6の仕様なのでしょうか、若しくはコンテナに積まず乗せる方法がほかにあるのでしょうか。

  • フォームを正しく最前面にする方法は?

    VB6(SP4)をWin2000で使用しています。(下記問題はWinMeでも生じます) フォームを一度消した後、処理をして、処理の終了後、再度表示すると最前面にならずに、タスクバー上のボタンやフォームのタイトルバーが点滅するだけになってしまいます。どのようにすれば、ちゃんと最前面になるのでしょうか? プログラムの内容は Private Sub Command1_Click()   Me.Visible = False   ※処理(他のAPを起動し、そのAPが終了するまで待機する)   Me.Visible = True   Me.SetFocus End Sub よろしくお願いします。

  • 単純な質問で恐縮です。

    単純な質問で恐縮です。 コマンドボタン1を押したら、ラベル1が消えて、ラベル2が表示させるようにしたいのですが動きません。 Private Sub CommandButton1_Click() Label1.Visible = False Label2.Visible = True end sub どうしてでしょうか?

  • vb6.0のFormの遷移がうまくいきません。

    Form1からForm2に移動するときのプログラム Private Sub Command5_Click() Form2.Show With Form1 .Enabled = False .Visible = False End With End Sub です。 Form2からForm1に移動するときのプログラム Private Sub Command1_Click() Form1.Show With Form2 .Enabled = False .Visible = False End With End Sub Form1からForm2に移動し、Form2からForm1に移動する 事は出来たのですが。もう一度、Form1からForm2に 移動しようとするとBeep音が鳴り移動できません。 なぜ、2回目は失敗するのでしょうか? プログラムに問題はありますか?

  • Visual C#で・・・。

    こんばんは、よろしくお願いします。 たとえば、VBでフォームにLabel1~10をコピーして張り付けると 自動的に、コントロール配列になってこのようなコードを書けますが、 Private Sub Form_Load() Dim i As Integer For i = 0 To 9 Label(i).Visible = False Next i End Sub これを、C#でやろうとすると、自動でコントロール配列にはならないし 同じことができません。 C#でコントロール配列のようなことをするには、どうしたらいいですか? お願いします。

  • エクセルVBAでShapesまたはDrawingObjects

    シート上のフォームなどを表示/非表示するためtest04を書きましたが、「実行時エラー438 オブジェクトはこのプロパティまたはメッソッドをサポートしていません」となります。 しかし、Test05のように同じことをForNextで回せばうまくいきます。 また、Test06のようにShapesをDrawingObjectsに書き換えただけでもうまくいきます。 では、Test04がエラーになるのはなぜでしょうか? Sub test04() With ActiveSheet.Shapes If .Visible = False Then .Visible = True Else .Visible = False End If End With End Sub Sub test05() For Each sp In ActiveSheet.Shapes If sp.Visible = False Then sp.Visible = True Else sp.Visible = False End If Next End Sub Sub test06() With ActiveSheet.DrawingObjects If .Visible = False Then .Visible = True Else .Visible = False End If End With End Sub

専門家に質問してみよう