• ベストアンサー

formに直接文字を書きたい

formに直接文字を書きたい。 PictureBoxに文字を書く場合 Picture1.CurrentX=100 Picture1.CurrentY=100 Picture1.print "TEST" で書けますが、FormにはPrintがないので書くことができません。 labelに書いて書きたい場所に移動すれば できますが書く文字が大量にあるためあまりlabelを増やしたくありません。 ご教示ください。 OS:Windows XP VB Ver6.0

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

  • ベストアンサー
回答No.1

Pictureをフォームのサイズと同じになるよう広げ最背面に配置して、そこに描いてみたらどうでしょう? WindowsAPIを使えば直接描画もできますがかなり難易度が上がります(こうなるとまた別の話) またコード書いて動的にLabelを生成する方法もあります。 そうすれば大量のLabelが有ってもコードで制御できるので、設計時にフォーム上で管理する必要なくなります。

obone
質問者

補足

formには線を描いていてその上にImageを貼り付け背景が透明の絵をloadしたりしているのでさらにPicturebox増やすと分からなくなりそうなので、動的にLabelを生成する方法でやってみます。

全文を見る
すると、全ての回答が全文表示されます。

その他の回答 (1)

  • redfox63
  • ベストアンサー率71% (1325/1856)
回答No.2

VB6のフォームでしたら Printメソッドでかけますよ CurrentX/CurrenYで書き込む位置をしていして Print "TEST"で書けます # オブジェクトブラウザにも表示されませんが ・・・ CurrentX/CurentYはScaleModeの影響を受けますので適切なものを選択してください

obone
質問者

補足

FORMのメンバにはPRINTないんですが?

全文を見る
すると、全ての回答が全文表示されます。

関連するQ&A

  • CreateFontの使い方

    VisualBasic 6.0で、下記のプログラムに,CreateFontを、加えて PictureBox上に、上下反転や縦倍角や横倍角の文字列を表示したいのですが、 うまくいかないです。どのように書いたらよいか教えてください。 お願いします。 Msg1 = "Aa" Form2.Picture1.CurrentX = 400 Form2.Picture1.CurrentY = 400 Form2.Picture1.FontSize = 40 Form2.Picture1.Print Msg1

  • vb2010

    vb2010で指定のポイントに文字を表示させる方法を教えてください。 下記のようなコードは間違いでしょうか。 初心者です。 CurrentX = 110 CurrentY = 70 Print("おはよう")

  • Print

    VBで今、自作ソフトが完成しようしている定かに どうしても乗り越せない部分があります Private Sub Form_Load() AutoRedraw = True ScaleMode = 3 CurrentX = 50 CurrentY = 50 Print "sample" & Chr(13) & "test" End Sub これをやってみると分かるのですが 改行するとX座標が一番左に変わってしまうんですけど これを直す方法ってありませんか?

  • vb6で覚えたことがvb2010で活かせれない。。

    グラフの目盛表示をしたくて、 vb2010で下記のコードを入力したのですが、何回やってもエラーがでます。 どなたか教えてください。 --------------------------------- J = 0 For I = 0 To 200 Step 40 CurrentX = 120 CurrentY = 100 + I strB = CStr(0.2 - (2 / 5) * J * 0.1) Print strB J = J + 1 Next J = 0 For I = 0 To 200 Step 40 CurrentX = 120 CurrentY = 300 + I strB = CStr(0 - (2 / 5) * J * 0.1) Print strB J = J + 1 Next -------------------------------------

  • VB6とVB.NETでは同じフォントでも違う文字になる?

    VB6とVB.NETでは同じフォントでも違う文字になる? VB.NETで文字を印刷しているのですが、VB6で印刷したものと、VB.NETで印刷したものは 同じフォントを指定しているのに、明らかに文字が違います。 このようなことはあるのでしょうか。 あるいはロジックに問題があるのでしょうか。 VB6 Printer.FontName = "MS ゴシック" Printer.CurrentY = YY Printer.CurrentX = XX Printer.FontSize = 10 Printer.Print(TITLE) VB.NET Dim PrtFont1 As New Font("MS ゴジック", 10) e.Graphics.DrawString(TITLE, PrtFont1, Brushes.Black, XX,YY) Windows XP VisualBasic 6.0, Visualbasic2010 Express

  • Form1にForm2を作る

    c++BuilderXE2です。 Vclフォームアプリケーションで作ったForm1に、更にForm2を作ることはできるのでしょうか。 プロジェクトマネージャーにFormコントロールが無いのでできないのでしょうか。 Form2を作る目的は、Form2とForm1はそれぞれ別プロセスで動作させ、かつForm2は子ウインドウのように動作させる、すなわち、Form1の位置を変えると、Form2も移動し、かつForm2はForm1より常に前面に置くためですが、このようなことができるかどうかを確かめたいのです。 他にもっとスマートな方法があればご教示願えれば幸いです。 まったく別のexeのウインドウ(Form2に対応)をForm1からspawn関数により立ち上げることは、テストしているのですが、両者の位置関係が連動しない問題があるのです。SetWindowRectは目的が違うようです。

  • VB6の印刷でメモリリーク

    VB6の印刷でメモリリーク VB6.0(SP6)について質問です。 PRINTERオブジェクトを使用して連続で印刷するとメモリリークが発生します。 プログラムは単純にPrint文で印刷しているのみですが、Printerオブジェクトに 問題があるのでしょうか? もしかしたら使用可能メモリ限界まで増加し続けるというWindowsの仕様でしょうか? お知恵をお貸しください。よろしくお願いします。 以下のソースを2秒周期のタイマで実行しています。 For iLoop = 0 To 100 Printer.CurrentX = iLoop Printer.CurrentY = iLoop Printer.Print "TEST" Next iLoop ’ テスト用にKILLDOCをしています Printer.KillDoc

  • VB Printerオブジェクトに関して

    ご回答が頂けないようですので再投稿です。 今回応答がない場合は違うサイトを探します。。 Printerオブジェクトを使用して伝票出力をします。 出力文字列の表示位置に関してご教授願います。 Printer.CurrentX = (縦位置) Printer.CurrentY = (横位置) Printer.Print (出力文字) ※単位はミリメートルです。 ※伝票(縦:114、横:210) Printer.CurrentXの指定方法が分かりません。 テストで指定して実装してみたのですが私の勝手な 推測ですが余白??の関係で私が意図した位置に表示 されません。CurrentXの指定は余白分を考慮して 設定しないといけないのでしょうか? ご教授のほどよろしくお願いします。

  • VB6で2つのFormを使ってプログラムについて

    環境:WindowsXp VB6(SP?) 操作:2つのフォーム(1と2)1からエクセルのデータを呼び込み⇒表示⇒さらにデーター追加⇒     コマンドボタンを押して2を表示⇒一部1のデータをラベルに表示してさらにデータ追加⇒     コマンド」ボタンを押して1と2のデータをエクセルの帳票に登録・保存     以上のことを繰り返す。     この間2フォームの登録・保存で2のフォームはアンロードする。 質問:1順目はうまくいくのですが、2順目になると、パブリック変数を使用して、テキストやラベルに表    示された、ものはうまくデーターが反映されるが、それ以外は、フォーム上では表示されていて     もdebug.printすると、データーが空欄になっているため、登録・保存できない。     例:'****Form1***** Public ex As String Form2.Show End Sub '******Form2******** Private Sub Form_Load() Label1 = Form1.ex End Sub このとき、2順目のForm1.exは””でもForm2のLabel1にはデーターが表示されている。             なにがいけないのかが、いろいろネットで調べてもよくわからないので、どなたか教えてくだ      さい。(initilizeとかをせっていすべきなのか?)      ただ、まだVB6をはじめて半年ほどですので、よろしくおねがいいたします。

  • VB6.0にて、ワールド変換(ピクチャーボックスの左下を原点にする)を

    VB6.0にて、ワールド変換(ピクチャーボックスの左下を原点にする)をしたいのですが、 下記のコードを記述するとエラーとなります。 どこが駄目なのかわかりませんので、どなたか教えていただけませんでしょうか? お手数をおかけしますがどうぞよろしくお願いします。 PictureBox1のGraphicsオブジェクトを取得 Dim g As Graphics = Form1.PictureBox1.CreateGraphics() g.TranslateTransform(0, Form1.picturebox1.Height - 1) g.ScaleTransform(1, -1) g.Dispose()