いつも大変お世話になっております。
ボタン内に入力される文字の縦幅・横幅を見て、文字が納まるように自動でボタンサイズを変えたいのですが、
ボタンサイズがwidth=75、Heigh=23のまま変化しません。
何が原因でしょうか?
お手数おかけして申し訳ございませんが、どなた様かご指導ご鞭撻の程よろしくお願い致します。
private void test_fm_Load(object sender, EventArgs e) { this.MainMenuStrip = new MenuStrip(); int FontSize = 15; // ボタンフォントサイズ for (int i = 0; i < 5; i++ ) { btnArray[i] = new Button(); } btnArray[0].Text = "あ"; btnArray[1].Text = "あい"; btnArray[2].Text = "あいう"; btnArray[3].Text = "あいうえ"; btnArray[4].Text = "あいうえお"; for (int i = 0; i < 5; i++) { btnArray[i].Location = new Point(100 * i + 10, 0); btnArray[i].Font = new Font("Arial", FontSize); btnArray[i].Size = new System.Drawing.Size(btnArray[i].Width, btnArray[i].Height); this.Controls.Add(btnArray[i]); } }
追記1====================================
お答え頂きありがとうございました。
大変参考になりました。
ボタン内の文字のサイズを見て自動でボタンサイズを変えることができました。
ここでひとつ疑問が生まれました。
今度は、一番文字サイズが大きく、一番ボタンサイズが大きかったものを基準に他のボタンのサイズを変えようとしたのですが
上手くいきませんでした。(「あいうえお」」の文字サイズですべてのボタンを作ろうとしています。)
以下のプログラムで実行しました。
btnArray[i].Width・btnArray[i].Height の値をうまく拾えていないような結果が出ました。
(デバックすると、width=75、Heigh=23、の値しか入ってきません)
もしよろしければ再度お答えいただけないでしょうか。
private void test_Load(object sender, EventArgs e) { this.MainMenuStrip = new MenuStrip(); int FontSize = 15; // ボタンフォントサイズ var btnArrayW_Max=0; int btnArrayH_Max=0; for (int i = 0; i < 5; i++ ) { btnArray[i] = new Button(); } btnArray[0].Text = "あ"; btnArray[1].Text = "あい"; btnArray[2].Text = "あいう"; btnArray[3].Text = "あいうえ"; btnArray[4].Text = "あいうえお"; for (int i = 0; i < 5; i++) { btnArray[i].Location = new Point(100 * i + 10, 0); btnArray[i].Font = new Font("Arial", FontSize); btnArray[i].AutoSize = true; btnArray[i].AutoSizeMode = System.Windows.Forms.AutoSizeMode.GrowAndShrink; if (i == 4) { for (i = 0; i < 4; i++) { btnArrayW_Max = Math.Max((int)btnArray[i].Width, (int)btnArray[i + 1].Width); btnArrayH_Max = Math.Max((int)btnArray[i].Height, (int)btnArray[i + 1].Height); } for (i = 0; i < 5; i++) { btnArray[i].Size = new System.Drawing.Size(btnArrayW_Max, btnArrayH_Max); this.Controls.Add(btnArray[i]); } } }
回答2件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2015/12/01 08:47