ラベルの文字列の長さが変わったときに、ラベル位置を自動で変更する方法
環境:Visual Studio 2008 (C#)、Windows 7 Professional (x64)
フォーム上にラベルを配置し、AutoSizeをTrue、AnchorをRightに設定すると、ラベルはフォームの右端に位置するように自動で位置を変更してくれます。
しかし、ラベルの内容を今より長い文字列に設定すると、ラベルの内容はフォームの右端をはみ出してしまい、ラベル全体に対してフォームの右端になるように配置してくれません。
いい方法がございましたら、お教えください。
どうぞよろしくお願いいたします。
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が設定されていても位置は自動で変わらない、ということなんですかね。
No.2ベストアンサー
- 回答日時:
こんにちは。
補足頂きました。Anchorは初期配置する際に、フォーム上の何処へ置くか、AutoSizeはテキストに合わせてラベルの幅が自動的に伸びる様になる、と言ったところではないでしょうか。
結局、ラベルの幅が増えても位置は固定のままです。
ラベルを含め、ボタン等のコントロールの素性はチャイルドスタイルのウィンドウを複合して形成されたものです。
色々とウィンドウを取り扱ってきましたが、ウィンドウの幅を自動変更してくれるのはありますが、ウィンドウの位置まで自動変更してくれるものは見た事がないです。
.NetFrameworkには色々と都合の好さそうなプロパティが存在するのですが、設定しても期待した通りにはならない事が良くあります。
お探しの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も見ています
-
新NISA制度は今までと何が変わる?非課税枠の拡大や投資対象の変更などを解説!
少額から投資を行う人のための非課税制度であるNISAが、2024年に改正される。おすすめの銘柄や投資額の目安について教えてもらった。
-
FORMが開いているかどうかの確認方法
Visual Basic(VBA)
-
CloseとDisposeの違い
Visual Basic(VBA)
-
フォームの再読み込み
Visual Basic(VBA)
-
-
4
文字数に合わせて、コントロールの幅を設定する方法
Visual Basic(VBA)
-
5
VB.NETでラベルの大きさってどうやって変えるの?
Visual Basic(VBA)
-
6
C# ReadOnlyのTextBoxで
C言語・C++・C#
-
7
Labelコントロールに数字を代入する
C言語・C++・C#
-
8
Loadイベント中にほかのイベントを発生したくない
その他(プログラミング・Web制作)
-
9
C#で、ある条件でFormが自動で閉じるプログラム
C言語・C++・C#
-
10
C#でキーイベントが発生しないようです
C言語・C++・C#
-
11
データグリッドビューの一番最初の行に列を追加したい
Visual Basic(VBA)
-
12
Hideについて(.NET)
Visual Basic(VBA)
-
13
C#でButtonのフォーカス枠を消したいのですが
C言語・C++・C#
-
14
C#のRichTextBoxで表示行数を取得したいのですが
C言語・C++・C#
-
15
C# DataGridViewで複数選択したセルに同じ値を一括で入力するには
C言語・C++・C#
-
16
ラベル内の文字(Caption)を縦表示にする方法
Visual Basic(VBA)
-
17
画面を強制的に再描画させる方法
C言語・C++・C#
-
18
他のデータベースとのテーブル結合
SQL Server
-
19
VB6.0の「vbFromUnicode」はVB.NETではどれに相当しますか?
Visual Basic(VBA)
-
20
DataGridViewの内容をDBに反映する時
Visual Basic(VBA)
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
eclipseのデバッグ中に変数の値...
-
ウォッチ式の文字数制限について
-
VisualStudioのプロパティが表...
-
ラベル内の文字(Caption)を縦...
-
C# DataGridView特定セルの入力...
-
ラベルのスクロール(VB)
-
Vba テキストボックス文字を右...
-
ACCESSのVisibleについて
-
VB.NETでラベルの大きさってど...
-
複数のコンボボックスの項目の...
-
ラベルの文字列の長さが変わっ...
-
C#初心者です。チェックボック...
-
VB6.0でテキストボックスの書式...
-
Labelのプロパティが変更できな...
-
VBSのMsgBoxで文字に色をつけたい
-
ACCESSのラベル内データに下線...
-
ExcelVBA EnableプロパティがF...
-
Notepad++のコメントの色を変え...
-
リストボックス内の文字の配置
-
Win32 API エディットボックス...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
ウォッチ式の文字数制限について
-
eclipseのデバッグ中に変数の値...
-
Vba テキストボックス文字を右...
-
VisualStudioのプロパティが表...
-
ExcelVBA EnableプロパティがF...
-
ラベル内の文字(Caption)を縦...
-
ラベルを表示したり非表示にし...
-
VB.NETでラベルの大きさってど...
-
ラベルの文字列の長さが変わっ...
-
エクセル 画像のプロパティで縦...
-
ラベルのスクロール(VB)
-
三菱タッチパネル小数点以下表...
-
Excel VBA ユーザーフォーム内...
-
Notepad++のコメントの色を変え...
-
チェックボックスの色について
-
ACCESSのラベル内データに下線...
-
VB6.0でテキストボックスの書式...
-
Labelのプロパティが変更できな...
-
ウムラウト文字の表示方法について
-
VBAでMultiPageの色の設定方法は?
おすすめ情報