2

ピクチャーボックス上の特定の場所を選択して、テキストボックスからテキストを配置できるツールを作成しようとしています。ピクチャーボックスに複数の異なるテキストを配置してから削除できる必要があります。これは私の現在のコードです:

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 TextboxTool
{
    public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();
            pictureBox1.Image = new Bitmap(pictureBox1.Width, pictureBox1.Height);
        }

        private void textBox1_MouseClick(object sender, MouseEventArgs e)
        {
            textBox1.Text = "";
        }

        private void button1_Click(object sender, EventArgs e)
        {
            textBox1.Visible = true;
        }

        private void pictureBox1_Click(object sender, EventArgs e)
        {
            Graphics G = Graphics.FromImage(pictureBox1.Image);
            G.DrawString(textBox1.Text, new Font("Tahoma", 40), Brushes.Black, new Point(MousePosition.X, MousePosition.Y));
        }
    }
}

現時点では、テキストボックスにテキストを入力することはできますが、画像ボックスに文字列を描画してその場所を選択することはできません。書かれたテキストが正しいことを確認し、ユーザーがその場所を選択できるようにするためのボタンがあります。誰かが私がこのコードを整理するのを手伝ってもらえますか?

ありがとう-

4

1 に答える 1

4

プロパティは、MousePositionではなく、画面に対して相対的PictureBoxです。

MouseClickイベントを処理し、と で文字列を描画する必要がe.Xありe.Yます。
または、呼び出しpictureBox1.PointToClientて画面座標をコントロール相対座標に変換することもできます。

また、ステートメントGraphicsでオブジェクトを破棄する必要があります。using

pictureBox1.Invalidate()最後に、画像を変更した後に強制的に再描画するために呼び出す必要があると確信しています。

于 2010-11-05T14:18:38.417 に答える