PowerPointでテキストをインラインで変更する機能を、プログラムではどうやって実現するかを調査しました。
プログラムの実行例
いきなりですが、サンプルプログラムの実行例です。
起動直後
form1にlabel1を貼り付けています。
ここでlabel1の付近をクリックします。
label1が選択されたように反転されています。
実は、label1はdisposeして、textBox1を貼り付けたform2が起動しています。
textBox1を変更します。
Enterを押します。
このタイミングで、form2をdisposeしてlabel1をshowします。
label1が変更されました。
プログラムのサンプル
form1にラベルをform2にテキストボックスを使います。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 |
using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using System.Linq; using System.Text; using System.Windows.Forms; namespace WindowsFormsApplication10 { public partial class Form1 : Form { public Form1() { InitializeComponent(); } private void label1_Click(object sender, EventArgs e) { Form form2 = new Form2(label1); form2.StartPosition = FormStartPosition.Manual; Point pt = label1.PointToScreen(new Point(0, 0)); form2.Location = new Point(pt.X, pt.Y); label1.Hide(); form2.ShowDialog(this); } } } |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 |
using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using System.Linq; using System.Text; using System.Windows.Forms; namespace WindowsFormsApplication10 { public partial class Form2 : Form { private Label label1; public Form2(Label label1) { InitializeComponent(); this.label1 = label1; textBox1.Text = label1.Text; } private void textBox1_Keydown(object sender, KeyEventArgs e) { if (e.KeyCode == Keys.Enter || e.KeyCode == Keys.Return) { this.label1.Text = textBox1.Text; this.Dispose(); this.label1.Show(); } else { } } } } |
form1のlabel1を押すと、form2のtextBox1に置き換わるように、
Point pt = label1.PointToScreen(new Point(0, 0));
を使って位置を調整します。
フォームのプロパティ
form2の
FormBorderStyleをSizableからNoneに
変更します。
form2のtextBox外側の枠である
BorderStyleをNoneにして消しておきます。
form2の上に貼り付けたtextBoxをピッタリにして
あたかもform2が存在していないかのようにしておきます。
こうすることで、ラベルを押してテキストボックスが表示される遷移がシームレスに見えるようになります。
このプログラムに対する要望
やっぱりフォントを一文字ずつ変更したいなぁ。
やっぱり文字を回転させたいなぁ。
やっぱり文字を移動させたいなぁ。
とソフトウェアへの要望は限りなく続くのであった。
プログラミングの無料レッスン体験
約8,000名の受講生と80社以上の導入実績のあるプログラミングやWebデザインのオンラインマンツーマンレッスンCodecamp
<Codecampの特徴>
1 現役エンジニアによる指導
2オンラインでのマンツーマン形式の講義
3大手企業にも導入されている実践的なカリキュラム
↓無料体験レッスン実施中です。
コメント