C#でLABELツールのTEXTが空白である位置はどこにありますか?

このQ&Aのポイント
  • C#のLABELツールで、TEXTの初期値は空白です。
  • LABELのTEXT領域の内容を削除して実行すると、LABELが表示されません。
  • 実行中にプログラムで文字をラベルに書いてもキチンと表示されますが、デザイナーでは見ることができません。LABELの位置変更もできません。再会する方法を教えてください。
回答を見る
  • ベストアンサー

C# TEXTが空白であるLABELは何処に???

C# でLABELツールを使います LABELのTEXTには色々な文字列を表示しますが初期値は空白です そこでLAEBLプロパティのTEXT領域の内容(Label1とあります)を削除して実行▲(少し角度が違う)した後、停止■します コード⇒デザイナー でFormを再表示すると、あら不思議Form上にLABELがありません 実行中にプログラムで文字をラベルに書いてもキチンと表示されますのでForm上には必ずあります でもデザイナーで見ることが出来ないのでLABELの位置さえ変更出来なくなってしまいました 如何すれば私の大切なLABELと再会出来るのでしょうか??? 教えてください、ワンワンわぁわぁ~わぁ~ん~!!!

質問者が選んだベストアンサー

  • ベストアンサー
  • FAY
  • ベストアンサー率49% (95/193)
回答No.2

Visual Studio 2008の場合だと、フォームを表示した状態で プロパティウィンドウの上部にあるプルダウンから目的のラベルコントロールを選択すると、 対象のコントロールがフォーム上で選択状態になります。 もしくはフォーム内のコントロールを全選択したり、 ラベルを配置しただいたいの位置を含むように範囲選択すると 対象のラベルコントロールも選択されるため、位置は分かるはずです。

sato-may
質問者

お礼

『フォーム内のコントロールを全選択』 ← こんな方法があるとは知りませんでした 目からウロコです ありがとうございました

その他の回答 (2)

  • sygh
  • ベストアンサー率76% (42/55)
回答No.3

フォーム デザイナーでまずは適当にフォーム内部をクリックした後、Tabキーを何度か押していると該当のLabelコントロールに行き着くと思います。 ただデザイナーでコントロールを見つけづらいと、その後もストレスになりますので、デザイナーでは適当な文字列(デフォルトの文字列"label1"などでOK)のままにしておいて、フォーム クラスのコンストラクタあるいはLoadイベント ハンドラで、手動で書いたコードによってLabelオブジェクトのTextプロパティを変更するのがよいです。 public Form1() { InitializeComponent(); label1.Text = ""; } あるいは private void Form1_Load(object sender, EventArgs e) { label1.Text = ""; }

sato-may
質問者

お礼

やはりオーソドックスな方法が一番でしょうかねぇ~   ・・・・わたしも考えたんですがねぇ~~~     ~~~ こうしようかなぁ ~~~       わざわざ難しくすることもないしなぁ~~ ともかくありがとうございました  わんワンわん~ン~!!!   

  • hosu1009
  • ベストアンサー率11% (9/78)
回答No.1

Formのデザイン画面で、配置したツールのプルダウンかなにかないですか? そこで、そのLabelを選択、 ここでフォーカスが移動するはずです。 あとは AutoSizeやText、Locationプロパティを変更してみてください。 自分の目に見えるようにすることが大事です。

sato-may
質問者

お礼

『自分の目に見えるようにすることが大事』 ← 解り易い対処方法です ありがとうございます この方向で努力します

関連するQ&A

  • C#で、ある条件でFormが自動で閉じるプログラム

    C#で、例えばForm2をForm1から開き、ある問題があってForm2のボタンを押すとForm2のラベルに正解と表示されます。 その文字が表示されたら数秒後に自動でForm2が閉じられるプログラムを書きたいのですがうまくいきません。 現在、こう書いています。3秒後とします。 using System.Threading;は宣言しています。 private void Form2_FormClosing(object sender, FormClosingEventArgs e) { if(label1.Text=="正解です。") { Thread.Sleep(3000); e.Cancel= false; } こうするといつまでも閉じてくれません。 ボタンクリックプログラムに、if文で、~ならば正解です、~ならば間違いです、などとふり分けている中、正解のところに label1.Text="正解です。"; Thread.Sleep(3000); this.Close(); などとすると、ボタンを押したら、ラベルには何も表示されずに3秒後に閉じます。 どうすればいいでしょうか?

  • C#

    form2で入力した文字を form1で表示させたいのですが、上手くいきません。プログラムの(文字制限の為)一部だけ のせます。アドバイス よろしくお願いします。 まず、form1 public class Form1 : System.Windows.Forms.Form { private System.Windows.Forms.MainMenu mainMenu1; private System.Windows.Forms.MenuItem menuItem1; private System.Windows.Forms.MenuItem menuItem2; private System.Windows.Forms.Label label1; private Form2 form2; /// <summary> /// 必要なデザイナ変数です。 /// </summary> private System.ComponentModel.Container components = null; public Form1() { // // Windows フォーム デザイナ サポートに必要です。 // InitializeComponent(); form2= new Form2(); label1.Text=string.Format("{0}",form2.s); // // TODO: InitializeComponent 呼び出しの後に、コンストラクタ コードを追加してください。 // } static void Main() { Application.Run(new Form1()); } private void menuItem2_Click(object sender, System.EventArgs e) { if (form2.ShowDialog(this) == DialogResult.OK) this.Refresh(); } } 次にform2です private void button1_Click(object sender, System.EventArgs e) { string s; s=(string)textBox1.Text; } public string s { get { return s; } }

  • MDIParent1に、ToolStripButton1とLabel1

    MDIParent1に、ToolStripButton1とLabel1、Label2を 配置しています。 やりたいことは  (1)ToolStripButton1をクリックしてForm1を表示させる。  (2)Label1をクリックしてForm1のTextをLabel1のTextに変更する。  (3)Label2をクリックしてForm1のTextをLabel2のTextに変更する。 最初に表示させたForm1のTextのみを変更させる。 現在下記のプログラムを実行したのですが Label1をクリックすると新たにForm1が表示されてしまいます。 (Form1のTextはLabel1のTextに変更されている) Label2をクリックすると新たにForm1が表示されてしまいます。 (Form1のTextはLabel2のTextに変更されている) クリックする毎にForm1がふえていきます。 対策方法を教えてください。 Public Class MDIParent1 Dim F1 As Form1  Private Sub ToolStripButton1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles ToolStripButton1.Click Dim frm As New Form1 frm.MdiParent = Me frm.Show() End Sub   Private Sub Label1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Label1.Click F1 = New Form1 F1.Visible = True F1.Text = Label1.Text Label1.BorderStyle = BorderStyle.Fixed3D Label2.BorderStyle = BorderStyle.None End Sub   Private Sub Label2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Label2.Click F1 = New Form1 F1.Visible = True F1.Text = Label2.Text Label2.BorderStyle = BorderStyle.Fixed3D Label1.BorderStyle = BorderStyle.None End Sub End Class

  • C#のlabelの表示について

    C#のlabelの表示について カテ違いですが、C#のカテゴリがないのでここで質問させていただきます。 以下の時刻を表示するプログラムを作成したのですが、        //現在の時刻を取得  DateTime dt = DateTime.Now; int Second_1 = dt.Second % 10; int Second_2 = dt.Second / 10; int Minute_1 = dt.Minute % 10; int Minute_2 = dt.Minute / 10; int Hour_1 = dt.Hour % 10; int Hour_2 = dt.Hour / 10; label1.Text = Second_1.ToString(); label2.Text = Second_2.ToString(); label3.Text = Minute_1.ToString(); label4.Text = Minute_2.ToString(); label5.Text = Hour_1.ToString(); label6.Text = Hour_2.ToString(); if (int.Parse(label1.Text) == 0 && int.Parse(label2.Text) == 0) { int a; for (a = 0; a < 10; a++) { pictureBox4.Top += 1; System.Threading.Thread.Sleep(30); } for (a = 0; a < 50; a++) { pictureBox4.Top += 5; System.Threading.Thread.Sleep(10); } pictureBox4.Top = 12; } label1は「秒」の1の位、 label2は「秒」の10の位、 pictureBox4は「分」の1の位の画像を表示しています。 pictureBoxとlabelを重ねて、画像の上に時刻を表示しています。 秒が0になったとき(分の位が一つ上がるとき)、 分の位の画像を移動させて(forループ2つ)再び元の位置に戻しているのですが(pictureBox4.Top = 12;) そのとき秒が「00」とはならず「59」のままで、このループが終わると「00」を飛ばして「01」となります。 ちなみにこの部分はタイマーで0.2秒ごとに回しています。 原因がわかりませんので、ご教授願います。 また、ループには概算で0.8秒かかりますが、この間、タイマーの呼び出しは実行されているのでしょうか? 加えて、pictureBox4.Topの値を動かしていますが、重ねて配置しているlabelも一緒に動いてくれます。 いろいろなサイト様を参考に、 this.label3.Parent = this.pictureBox4; と親コントロールをFormから変更したのですが、このためでしょうか? 変な表現がありましたらご容赦ください。 よろしくお願いします。

  • XPが私のラベル文字を表示してくれないのです???

    C# ラベルに文字を表示し、そのラベルごと画面イメージ全体を取込みます 取込みが終ったらラベル文字を消去し、先に取込んだ画面イメージをPictureBoxに表示します PictureBoxには『これが画面に表示されます』と表示されたラベルも含めて画面イメージが映っております Windows7、Vistaでは確認したらOKでした //label1のプロパティ label1.Text には空白、Visibleにはfalseが設定されています Bitmap ScreenSaving = new Bitmap(Screen.PrimaryScreen.Bounds.Width, Screen.PrimaryScreen.Bounds.Height); //画面サイズの領域を用意します label1.Text = "これが画面に表示されます"; label1.Visible = true; this.TopMost = true; Graphics g = Graphics.FromImage(ScreenSaving); //Graphicsの作成 g.CopyFromScreen(new Point(0, 0), new Point(0, 0), ScreenSaving.Size); //画面全体をコピーする g.Dispose(); label1.Text = ""; //画面コピー後に直ちにに消去 pictureBox1.Image = ScreenSaving; //コピーした画面を表示 ところがXPで同じプログラムを実行するとPictureBoxのラベルは空白のままです 画面をジッと直視していると画面が一瞬チラリと動きます 文字自体は肉眼では読取れませんが、チラリとしたのでラベルは表示されているのでしょう では何故XPはラベルを表示した状態の画面を読取らないのでしょうか? Windows7、VistaとXPでは画面表示のタイミング等々に差あるのでしょうか? XPで瞬間的に表示したラベルを画面から読取るにはどうしたら良いのでしょうか? ご指導宜しくお願い申し上げます 追伸】上述の『同じプログラムを実行する』とはVisual Studioでインスローラを作り、それをセットアップしました Windows7、Vista、XPで別々にビルドした訳ではありません

  • ラベルの改行

    VB2008EEです。 Label1.Text = "あいうえお" & Chr(13) & Chr(10) & "かきくけこ" 上記をFormに記述すると改行できるのですが、これは実行しないと表示されません。 LabelのプロパティのTextの文字で、エディタ上で改行して表示させる事は出来るでしょうか?

  • C# Form処理

    Form1とForm3からForm2を表示させれるようにして,どちらかのフォームのコントロールをクリック したらform2が立ち上がりformに応じた処理を行いたいのですが,下記のコードではエラーとなって 動きません int Pin1 = f1.butt1; int Pin3 = f3.butt3; if (Pin1 == 1) { int h = f1.but; for (int hj = 1; hj < 43; hj++) { if (h == hj) { //Labelに文字を入力。 string Memo = "label" + (hj + 93); string Hd = "label" + (hj + 51); Label f1_Memo = (Label)f1.Controls[Memo]; f1_Memo.Text = this.textBox1.Text; Label f1_Hd = (Label)f1.Controls[Hd]; f1_Hd.Text = this.textBox2.Text; } } } else if (Pin3 == 1) { int h3 = f3.but3; for (int hj3 = 1; hj3 < 43; hj3++) { if (h3 == hj3) { //Labelに文字を入力。 string Memo = "label" + (hj3 + 744); MessageBox.Show(Memo.ToString()); Label f3_Memo = (Label)f3.Controls[Memo]; f3_Memo.Text = this.textBox1.Text; } } } Form1のコントロールであれば上のforループ,Form3であれば下のforループで処理するように考えております.Form1でform3を開くコントロールを選択した場合上記コードのbutt1は0になるように しているつもりです. エラーは NullReferenceExceptionがハンドルされませんでした. オブジェクト インスタンスの作成には new キーワードを使用します。 何がいけなくてどう対処すればよろしいのでしょうか? ご教授よろしくお願いいたします.

  • VB2010にて、ラベルの文字を6文字目で改行して表示したいのですが可

    VB2010にて、ラベルの文字を6文字目で改行して表示したいのですが可能でしょうか? Label5.***文字数指定*** のようなコードがあれば助かるのですが、 どなたかご存知でしたら教えてください。 よろしくお願いいたします。 Label5.text="あいうえおかきくけこ" 【表示】 あいうえお かきくけこ

  • C#について・・・

    次のようなブログラムなのですが、ラジオボタンが上手く切り替わりません。 どこを修正すると上手くいくでしょうか? <<文字数オーバーのため省略>> public Form1() { // // Windows フォーム デザイナ サポートに必要です。 // InitializeComponent(); if(isJapanStyle) { label5.Text=string.Format("0時0分0秒"); label6.Text=string.Format("0時0分0秒"); } else { label5.Text=string.Format("00:00:00"); label6.Text=string.Format("00:00:00"); } // // TODO: InitializeComponent 呼び出しの後に、コンストラクタ コードを追加してください。 // <<文字数オーバーのため 省略>> static void Main() { Application.Run(new Form1()); } protected void button1_Click(object sender, System.EventArgs e) { if(isJapanStyle) { label5.Text=string.Format("{0}時{1}分{2}秒",dt.Hour,dt.Minute,dt.Second); } else { label5.Text=DateTime.Now.ToString("T"); } recTime=dt; timer2.Stop(); timer3.Start(); } private void button2_Click(object sender, System.EventArgs e) { Application.Exit(); } private void timer1_Tick(object sender, System.EventArgs e) { dt=DateTime.Now; if(isJapanStyle) { label4.Text=string.Format("{0}時{1}分{2}秒",dt.Hour,dt.Minute,dt.Second); } else { label4.Text=DateTime.Now.ToString("T"); } } private void timer3_Tick(object sender, System.EventArgs e) { keika=dt-recTime; if(isJapanStyle) { label6.Text=string.Format("{0}時間{1}分{2}秒",keika.Hours,keika.Minutes,keika.Seconds); } else { label6.Text=string.Format("{0}:{1}:{2}",keika.Hours,keika.Minutes,keika.Seconds); } } private void timer2_Tick(object sender, System.EventArgs e) { timer3.Stop(); } private void radioButton2_CheckedChanged(object sender, System.EventArgs e) { isJapanStyle=false; } private void radioButton1_CheckedChanged(object sender, System.EventArgs e) { isJapanStyle=true; } } }

  • ラベルの大きさをフォームのクライアント領域全体(メニューバー以外)にするには

    フォームにメニューストリップとラベルを一つ配置し、実行時にラベルをフォームのクライアント領域全体になるように配置したいのですが、 ラベルのプロパティのアンカーを4つ全て選択し、 Loadイベントに Label1.Bounds = Me.ClientRectangle と書くとメニューバーが隠れてしまうんです。 やりたいことはメニューバー以外の領域全体にラベルをひろげたいのですが、どのように書けばできるのでしょうか。

専門家に質問してみよう