
ラベルの文字列の長さが変わったときに、ラベル位置を自動で変更する方法
環境:Visual Studio 2008 (C#)、Windows 7 Professional (x64)
フォーム上にラベルを配置し、AutoSizeをTrue、AnchorをRightに設定すると、ラベルはフォームの右端に位置するように自動で位置を変更してくれます。
しかし、ラベルの内容を今より長い文字列に設定すると、ラベルの内容はフォームの右端をはみ出してしまい、ラベル全体に対してフォームの右端になるように配置してくれません。
いい方法がございましたら、お教えください。
どうぞよろしくお願いいたします。
No.2ベストアンサー
- 回答日時:
こんにちは。
補足頂きました。Anchorは初期配置する際に、フォーム上の何処へ置くか、AutoSizeはテキストに合わせてラベルの幅が自動的に伸びる様になる、と言ったところではないでしょうか。
結局、ラベルの幅が増えても位置は固定のままです。
ラベルを含め、ボタン等のコントロールの素性はチャイルドスタイルのウィンドウを複合して形成されたものです。
色々とウィンドウを取り扱ってきましたが、ウィンドウの幅を自動変更してくれるのはありますが、ウィンドウの位置まで自動変更してくれるものは見た事がないです。
.NetFrameworkには色々と都合の好さそうなプロパティが存在するのですが、設定しても期待した通りにはならない事が良くあります。
No.1
- 回答日時:
こんばんは。
ラベルの右端をフォームの右端に合わせたいと言う事でしょうか。
ラベルにテキストをセットした時に幅を計測して、フォームの右端からはみ出ていたら、ラベルを左に移動して見ては。
当方の環境は、VisualStudio2008, windows xp 32bitです。以下参考程度に。
namespace WindowsFormsApplication1
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}
private void button1_Click(object sender, EventArgs e)
{
//デタラメに長い文字列を作成する
String s = "";
for (int n = 0; n < 300; ++n)
s += n.ToString() + ",";
//ラベルにセット
this.label1.Text = s;
//ラベルの幅がフォームからはみ出たかどうかを確認
int X = (this.label1.Width + this.label1.Margin.Right) - this.Width;
//はみ出ていたので左へ移動
if(X > 0)
this.label1.Location = new Point(-X, this.label1.Location.Y);
}
}
}
この回答への補足
回答ありがとうございます。
ということは、Anchorはラベルの初期幅を基準にしていて、ラベルの幅が変わってしまうと、Anchorが設定されていても位置は自動で変わらない、ということなんですかね。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- プリンタ・スキャナー Wordで作った宛名ラベルを印刷しようと思って、プリンターの上のところにある、手差しトレイ的なところ 3 2022/11/17 18:40
- Excel(エクセル) エクセルの散布図で新たに入力した値のデータラベルが空欄になる現象 1 2022/04/26 09:31
- Visual Basic(VBA) VB DataGridViewについて 3 2022/06/08 17:20
- その他(買い物・ショッピング) 商品にラベルを貼って出荷するまでのの手順にについて 2 2022/09/29 15:26
- Word(ワード) 表の縦罫線を移動するピッチ 1 2022/10/12 12:24
- 飲食店・レストラン 水商売をしています。ご予約されているお客様がいらっしゃる場合にキープされているボトルをお席に置いてお 2 2023/01/20 09:51
- Word(ワード) ワード2019で、テキストボックスの位置を、左右の真ん中にする方法 1 2022/09/21 13:49
- Visual Basic(VBA) ユーザーフォーム上に現在日時と時刻を表示させていますがフォームを実行すると時間が更新されません。それ 2 2023/02/21 22:28
- Gmail Gmailのラベル内のメールを受信トレイに移してから、そのラベルを削除したいです。 1 2022/09/10 20:51
- お酒・アルコール 【アルコール類のセラー関係者さんに質問です】赤ワインを買おうとしたら、ネットで検索してもそんなラベル 1 2022/06/19 21:30
このQ&Aを見た人はこんなQ&Aも見ています
-
ピクチャーボックスの大きさに合わせて画像を表示
Visual Basic(VBA)
-
FORMが開いているかどうかの確認方法
Visual Basic(VBA)
-
文字数に合わせて、コントロールの幅を設定する方法
Visual Basic(VBA)
-
-
4
CloseとDisposeの違い
Visual Basic(VBA)
-
5
GROUP BYを行った後に結合したい。
Oracle
-
6
Labelコントロールの(左右)余白について
Visual Basic(VBA)
-
7
OpenFileDialogを使った後にもう一度開くと以前のファイルを表示させたい。
Visual Basic(VBA)
-
8
C# DataTableに最後に追加した行をDataGridView上で選択状態にする方法は?
C言語・C++・C#
-
9
フルパスから最後のディレクトリ名を取得したい。
Visual Basic(VBA)
-
10
Visual Basic.NETの、Form 間での引数の引渡し方法を教えてください。
Visual Basic(VBA)
-
11
「タイプ初期化子が例外をスローしました」エラー何?
Visual Basic(VBA)
-
12
VB.NETで小数点以下の桁数を取得したい
その他(ソフトウェア)
-
13
C# ReadOnlyのTextBoxで
C言語・C++・C#
-
14
panelのスクロール表示について
Visual Basic(VBA)
-
15
VB.NET2005 TextBox 高さ(Height) 変更
Visual Basic(VBA)
-
16
DataGridViewの各セル幅を自由に決め、その幅で固定したい
Visual Basic(VBA)
-
17
VB.NETでラベルの大きさってどうやって変えるの?
Visual Basic(VBA)
-
18
Labelコントロールに数字を代入する
C言語・C++・C#
-
19
【C#】DataGridViewの最大列数について
システム
-
20
CellEnterイベント仕様について
Visual Basic(VBA)
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
VB.NETでラベルの大きさってど...
-
コマンドプロンプト
-
ExcelVBAのLISTBOXから複数行選...
-
VB2010でRichTextBoxでの一文字...
-
VB2005 DataGridviewのチェック...
-
ウォッチ式の文字数制限について
-
エクセル 画像のプロパティで縦...
-
ラベル内の文字(Caption)を縦...
-
C# DataGridView特定セルの入力...
-
ラベルを表示したり非表示にし...
-
Labelのプロパティが変更できな...
-
ラベルの文字列の長さが変わっ...
-
パソコンへの「Dropbox...
-
ユーザーフォームを表示中にシ...
-
worksheetFunctionクラスのVloo...
-
エクセルVBA 日本語入力指定
-
VBA シートのボタン名を変更し...
-
すぐにイライラしてしまいます。
-
ExcelVBAのユーザーフォームの...
-
C#でSendInputを使ったサンプル...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
ウォッチ式の文字数制限について
-
eclipseのデバッグ中に変数の値...
-
ラベルの文字列の長さが変わっ...
-
Vba テキストボックス文字を右...
-
ExcelVBA EnableプロパティがF...
-
VisualStudioのプロパティが表...
-
ラベルを表示したり非表示にし...
-
ラベルのスクロール(VB)
-
VB.NETでラベルの大きさってど...
-
Notepad++のコメントの色を変え...
-
Excel VBA ユーザーフォーム内...
-
三菱タッチパネル小数点以下表...
-
ラベル内の文字(Caption)を縦...
-
MATLABのグラフで軸目盛りのフ...
-
VBA:ユーザフォームのラベルの...
-
VB2005 TextBoxで高さを変更し...
-
C#初心者です。チェックボック...
-
スプレッドシートの列名変更の...
-
ACCESSのラベル内データに下線...
-
C# DataGridView特定セルの入力...
おすすめ情報