ラベルの文字列の長さが変わったときに、ラベル位置を自動で変更する方法
環境: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も見ています
-
好きなおでんの具材ドラフト会議しましょう
肌寒くなってきて、温かい食べ物がおいしい季節になってきましたね。 みなさんはおでんの具材でひとつ選ぶなら何にしますか? 1番好きなおでんの具材を教えてください。
-
【コナン30周年】嘘でしょ!?と思った○○周年を教えて【ハルヒ20周年】
2024年は「名探偵コナン30周年」「涼宮ハルヒ20周年」などを迎えますが、 あなたが「もうそんなに!?」と驚いた○○周年を教えてください。
-
「覚え間違い」を教えてください!
私はかなり長いこと「大団円」ということばを、たくさんの団員が祝ってくれるイメージで「大円団」だと間違えて覚えていました。
-
自分のセンスや笑いの好みに影響を受けた作品を教えて
子どもの頃に読んだ漫画などが その後の笑いの好みや自分自身のユーモアのセンスに影響することがあると思いますが、 「この作品に影響受けてるな~!」というものがあれば教えてください。
-
ギリギリ行けるお一人様のライン
おひとり様需要が増えているというニュースも耳にしますが、 あなたが「ギリギリ一人でも行ける!」という場所や行為を教えてください
-
visual studio でインデントを自動的に揃えるショートカットキー
その他(プログラミング・Web制作)
-
インスタンス参照でアクセスできない。代わりに型名?
C言語・C++・C#
-
文字数に合わせて、コントロールの幅を設定する方法
Visual Basic(VBA)
-
-
4
C# ReadOnlyのTextBoxで
C言語・C++・C#
-
5
VB.NETで他のプロジェクトで作成したフォームを使う方法
Visual Basic(VBA)
-
6
Labelコントロールに数字を代入する
C言語・C++・C#
-
7
DataGridViewのチェックボックスのON、OFFの判定方法
C言語・C++・C#
-
8
C#のループでtextboxに値を入れる方法
C言語・C++・C#
-
9
C#でButtonのフォーカス枠を消したいのですが
C言語・C++・C#
-
10
FORMが開いているかどうかの確認方法
Visual Basic(VBA)
-
11
GROUP BYを行った後に結合したい。
Oracle
-
12
Integer変数をカラにしたいのですが
Visual Basic(VBA)
-
13
【C#】別フォームも同時に閉じるには?
C言語・C++・C#
-
14
VB.NETでラベルの大きさってどうやって変えるの?
Visual Basic(VBA)
-
15
DataGrdViewに関連付けたデータの更新
C言語・C++・C#
-
16
VisualStudioのプロパティが表示されない
Visual Basic(VBA)
-
17
他プロジェクトのFormを自プロジェクトにコピーしてもうまく働かない
C言語・C++・C#
-
18
C# 超初心者です。 this.Refresh();という文を使いたいです
C言語・C++・C#
-
19
CStringからchar*への型変換について教えてください。
C言語・C++・C#
-
20
Visual Basic.NETの、Form 間での引数の引渡し方法を教えてください。
Visual Basic(VBA)
関連するカテゴリからQ&Aを探す
おすすめ情報
- ・漫画をレンタルでお得に読める!
- ・プリン+醤油=ウニみたいな組み合わせメニューを教えて!
- ・タイムマシーンがあったら、過去と未来どちらに行く?
- ・遅刻の「言い訳」選手権
- ・【大喜利】【投稿~11/12】 急に朝起こしてきた母親に言われた一言とは?
- ・好きな和訳タイトルを教えてください
- ・うちのカレーにはこれが入ってる!って食材ありますか?
- ・好きな「お肉」は?
- ・あなたは何にトキメキますか?
- ・おすすめのモーニング・朝食メニューを教えて!
- ・「覚え間違い」を教えてください!
- ・とっておきの手土産を教えて
- ・「平成」を感じるもの
- ・秘密基地、どこに作った?
- ・【お題】NEW演歌
- ・カンパ〜イ!←最初の1杯目、なに頼む?
- ・一回も披露したことのない豆知識
- ・これ何て呼びますか
- ・初めて自分の家と他人の家が違う、と意識した時
- ・「これはヤバかったな」という遅刻エピソード
- ・これ何て呼びますか Part2
- ・許せない心理テスト
- ・この人頭いいなと思ったエピソード
- ・牛、豚、鶏、どれか一つ食べられなくなるとしたら?
- ・ハマっている「お菓子」を教えて!
- ・【大喜利】【投稿~11/1】 存在しそうで存在しないモノマネ芸人の名前を教えてください
- ・好きなおでんの具材ドラフト会議しましょう
- ・餃子を食べるとき、何をつけますか?
- ・あなたの「必」の書き順を教えてください
- ・ギリギリ行けるお一人様のライン
- ・10代と話して驚いたこと
- ・つい集めてしまうものはなんですか?
- ・自分のセンスや笑いの好みに影響を受けた作品を教えて
- ・【お題】引っかけ問題(締め切り10月27日(日)23時)
- ・大人になっても苦手な食べ物、ありますか?
- ・14歳の自分に衝撃の事実を告げてください
- ・【大喜利】【投稿~10/21(月)】買ったばかりの自転車を分解してひと言
- ・ホテルを選ぶとき、これだけは譲れない条件TOP3は?
- ・家・車以外で、人生で一番奮発した買い物
- ・人生最悪の忘れ物
- ・【コナン30周年】嘘でしょ!?と思った○○周年を教えて【ハルヒ20周年】
- ・あなたの習慣について教えてください!!
- ・都道府県穴埋めゲーム
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
Vba テキストボックス文字を右...
-
ウォッチ式の文字数制限について
-
VBSのMsgBoxで文字に色をつけたい
-
VB.NETでラベルの大きさってど...
-
ラベル内の文字(Caption)を縦...
-
C#初心者です。チェックボック...
-
eclipseのデバッグ中に変数の値...
-
ラベルの文字列の長さが変わっ...
-
WSHにて戻りオブジェクトのプロ...
-
ACCESSのVisibleについて
-
VB6.0でテキストボックスの書式...
-
スプレッドシートの列名変更の...
-
ListViewでの行全体の選択
-
エクセル 画像のプロパティで縦...
-
GridコントロールにCheckBoxを表示
-
VisualStudioのプロパティが表...
-
ラベルを表示したり非表示にし...
-
テキストボックスで数値入力制限
-
Notepad++のコメントの色を変え...
-
word2000でキー設定ができません
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
eclipseのデバッグ中に変数の値...
-
ウォッチ式の文字数制限について
-
Vba テキストボックス文字を右...
-
ラベルを表示したり非表示にし...
-
VisualStudioのプロパティが表...
-
ACCESSのラベル内データに下線...
-
ラベルのスクロール(VB)
-
ラベルの文字列の長さが変わっ...
-
三菱タッチパネル小数点以下表...
-
ExcelVBA EnableプロパティがF...
-
VBAでMultiPageの色の設定方法は?
-
Excel VBA ユーザーフォーム内...
-
ラベル内の文字(Caption)を縦...
-
MATLABのグラフで軸目盛りのフ...
-
VB.NETでラベルの大きさってど...
-
Notepad++のコメントの色を変え...
-
C# DataGridView特定セルの入力...
-
エクセル 画像のプロパティで縦...
-
TextBox内で違う色の文字を表示...
-
スプレッドシートの列名変更の...
おすすめ情報