テキストボックス内の文字を中央配置にするには?

解決


まこ  2005-03-17 20:48:23  No: 120323

TextBox内の文字を上下左右の中央辺りに表示させたいのですが、
Alignmentを"2-中央揃え"にしても、左右の中央になるだけです。
上下の中央に配置させるにはどのようにしたら良いのでしょうか?
+---------+
+   
+---------+

環境はVB6です。
よろしくお願いします。


まこ  2005-03-17 20:50:40  No: 120324

すいません。
書いてる途中で送信してしまいました。
イメージとしては、下のような感じです。
よろしくお願いします。
+------------+
|            |
|            |
|     ○     |
|            |
|            |
+------------+


じゃんぬねっと  2005-03-17 21:33:57  No: 120325

Border を None にして、Border は自分で描画するとか。


ひろ  2005-03-18 00:14:29  No: 120326

コマンドボタンは上下も中央揃えなので、これを枠を隠して表示するという
手もあり得ますね。

枠だけ合って中身がないダミーのLabelの手前に
FrameをBorderStyle=0, Enabled = False, Caption="" にして配置
で、Frameその中にボタンの枠がFrame空は乱すようにして
TabStop=FalseにしたCommandButtonを入れる。

枠が不要ならダミーのLabel自体不要です。

うまく伝わらないかもしれないのでサンプルのフォーム定義を付けておきます
−−−−−−−−−−−ここから−−−−−−−−−−−−−−
VERSION 5.00
Begin VB.Form Form1 
   Caption         =   "Form1"
   ClientHeight    =   3195
   ClientLeft      =   60
   ClientTop       =   345
   ClientWidth     =   4680
   LinkTopic       =   "Form1"
   ScaleHeight     =   3195
   ScaleWidth      =   4680
   StartUpPosition =   3  'Windows の既定値
   Begin VB.Frame Frame1 
      BorderStyle     =   0  'なし
      Enabled         =   0   'False
      Height          =   1800
      Left            =   780
      TabIndex        =   1
      Top             =   780
      Width           =   1800
      Begin VB.CommandButton Command1 
         Caption         =   "Command1"
         Height          =   1920
         Left            =   -60
         TabIndex        =   2
         TabStop         =   0   'False
         Top             =   -60
         Width           =   1920
      End
   End
   Begin VB.Label Label1 
      BorderStyle     =   1  '実線
      Height          =   1920
      Left            =   720
      TabIndex        =   0
      Top             =   720
      Width           =   1920
   End
End
Attribute VB_Name = "Form1"
Attribute VB_GlobalNameSpace = False
Attribute VB_Creatable = False
Attribute VB_PredeclaredId = True
Attribute VB_Exposed = False
−−−−−−−−−−−ここまで−−−−−−−−−−−−−−


ひろ  2005-03-18 00:26:34  No: 120327

上下を中央にそろえるLabelと勘違いしていました。すいません。
テキストボックスとなると枠を自力で書くかそういう機能のあるコントロールを探してくるしか方法が思いつきません


花ちゃん  URL  2005-03-18 00:38:03  No: 120328

下記ではどうですか?

http://www.bcap.co.jp/hanafusa/VBHLP/textali.htm


まこ  2005-03-18 00:39:56  No: 120329

じゃんぬねっとさん、ひろさん回答ありがとうございました。
枠は自力で書くことにしました。


まこ  2005-03-18 00:42:54  No: 120330

花ちゃんさんありがとうございます。
発言が重なってしまったようで、解決にチェックしてしまいました・・・
今から対応してみます。


ひろ  2005-03-18 00:43:28  No: 120331

解決になった後で書くのもなんですが、
1行1列のFlexGridを用意してCellAlignmentをflexAlignCenterCenter
にする手もあり得ますね。見た目がちょっと違う雰囲気になりますが。


※返信する前に利用規約をご確認ください。

※Google reCAPTCHA認証からCloudflare Turnstile認証へ変更しました。






  このエントリーをはてなブックマークに追加