
ラベルの文字列の長さが変わったときに、ラベル位置を自動で変更する方法
環境: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
Visual Basic.NETの、Form 間での引数の引渡し方法を教えてください。
Visual Basic(VBA)
-
5
OpenFileDialogを使った後にもう一度開くと以前のファイルを表示させたい。
Visual Basic(VBA)
-
6
「タイプ初期化子が例外をスローしました」エラー何?
Visual Basic(VBA)
-
7
visual studio でインデントを自動的に揃えるショートカットキー
その他(プログラミング・Web制作)
-
8
ピクチャーボックスの大きさに合わせて画像を表示
Visual Basic(VBA)
-
9
DataGrdViewに関連付けたデータの更新
C言語・C++・C#
-
10
Designer.vbは直接コードをいじってはだめ?
Visual Basic(VBA)
-
11
DataGridViewの各セル幅を自由に決め、その幅で固定したい
Visual Basic(VBA)
-
12
VBでグローバル変数を宣言するには
Visual Basic(VBA)
-
13
CloseとDisposeの違い
Visual Basic(VBA)
-
14
VB.NETで他のプロジェクトで作成したフォームを使う方法
Visual Basic(VBA)
-
15
Labelコントロールの(左右)余白について
Visual Basic(VBA)
-
16
VB.NETでラベルの大きさってどうやって変えるの?
Visual Basic(VBA)
-
17
C# ReadOnlyのTextBoxで
C言語・C++・C#
-
18
exeファイルの中身を見ることは可能ですか?
フリーソフト
-
19
PowerPointに動画をはった時の、動画の再生速度について
その他(ソフトウェア)
-
20
【C#】DataGridViewの最大列数について
システム
関連するカテゴリからQ&Aを探す
おすすめ情報
- ・漫画をレンタルでお得に読める!
- ・一番好きなみそ汁の具材は?
- ・泣きながら食べたご飯の思い出
- ・「これはヤバかったな」という遅刻エピソード
- ・初めて自分の家と他人の家が違う、と意識した時
- ・いちばん失敗した人決定戦
- ・思い出すきっかけは 音楽?におい?景色?
- ・あなたなりのストレス発散方法を教えてください!
- ・もし10億円当たったら何に使いますか?
- ・何回やってもうまくいかないことは?
- ・今年はじめたいことは?
- ・あなたの人生で一番ピンチに陥った瞬間は?
- ・初めて見た映画を教えてください!
- ・今の日本に期待することはなんですか?
- ・集中するためにやっていること
- ・テレビやラジオに出たことがある人、いますか?
- ・【お題】斜め上を行くスキー場にありがちなこと
- ・人生でいちばんスベッた瞬間
- ・コーピングについて教えてください
- ・あなたの「プチ贅沢」はなんですか?
- ・コンビニでおにぎりを買うときのスタメンはどの具?
- ・おすすめの美術館・博物館、教えてください!
- ・【お題】大変な警告
- ・洋服何着持ってますか?
- ・みんなの【マイ・ベスト積読2024】を教えてください。
- ・「これいらなくない?」という慣習、教えてください
- ・今から楽しみな予定はありますか?
- ・AIツールの活用方法を教えて
- ・最強の防寒、あったか術を教えてください!
- ・歳とったな〜〜と思ったことは?
- ・モテ期を経験した方いらっしゃいますか?
- ・好きな人を振り向かせるためにしたこと
- ・スマホに会話を聞かれているな!?と思ったことありますか?
- ・それもChatGPT!?と驚いた使用方法を教えてください
- ・見学に行くとしたら【天国】と【地獄】どっち?
- ・これまでで一番「情けなかったとき」はいつですか?
- ・この人頭いいなと思ったエピソード
- ・あなたの「必」の書き順を教えてください
- ・14歳の自分に衝撃の事実を告げてください
- ・人生最悪の忘れ物
- ・あなたの習慣について教えてください!!
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
ウォッチ式の文字数制限について
-
eclipseのデバッグ中に変数の値...
-
ラベルの文字列の長さが変わっ...
-
ラベルのスクロール(VB)
-
ExcelVBA EnableプロパティがF...
-
Vba テキストボックス文字を右...
-
ラベルを表示したり非表示にし...
-
Notepad++のコメントの色を変え...
-
MATLABのグラフで軸目盛りのフ...
-
ラベル内の文字(Caption)を縦...
-
VBA:ユーザフォームのラベルの...
-
オートシェイブをIncrementLeft...
-
vbaを使ってグーグル検索をしたい
-
VisualStudioのプロパティが表...
-
実行ファイルのアイコン
-
VBSのMsgBoxで文字に色をつけたい
-
VB.NETでラベルの大きさってど...
-
Excel VBA ユーザーフォーム内...
-
VBAでMultiPageの色の設定方法は?
-
ListViewでの行全体の選択
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
ウォッチ式の文字数制限について
-
eclipseのデバッグ中に変数の値...
-
Vba テキストボックス文字を右...
-
VisualStudioのプロパティが表...
-
ラベルの文字列の長さが変わっ...
-
ExcelVBA EnableプロパティがF...
-
MATLABのグラフで軸目盛りのフ...
-
VB.NETでラベルの大きさってど...
-
ラベルを表示したり非表示にし...
-
ラベル内の文字(Caption)を縦...
-
ラベルのスクロール(VB)
-
三菱タッチパネル小数点以下表...
-
ListViewでの行全体の選択
-
ACCESSのラベル内データに下線...
-
Notepad++のコメントの色を変え...
-
C#初心者です。チェックボック...
-
スプレッドシートの列名変更の...
-
TextBox内で違う色の文字を表示...
-
VBAでMultiPageの色の設定方法は?
-
Windowsのカーソルを変更
おすすめ情報