投稿者 KOZ  (社会人) 投稿日時 2024/8/6 18:13:08
これでどうでしょうか?

using System;
using System.Drawing;
using System.Runtime.InteropServices;
using System.Windows.Forms;

public partial class MainForm : Form
{
    public MainForm() {
        InitializeComponent();
    }

    private const int WM_SYSCOMMAND = 0x0112;
    private const int SC_MOVE = 0xF010;
    private const int HTCAPTION = 0x0002;

    [DllImport("user32.dll")]
    private static extern IntPtr SendMessage(IntPtr hWnd, int Msg, IntPtr wParam, IntPtr lParam);

    private void AddCardButton_Click(object sender, EventArgs e) {
        RichTextBox newRichTextBox = new RichTextBox {
            Size = new Size(200, 100),
            Location = new Point(10, 30 + (cardPanel.Controls.Count * 120)),
            BackColor = Color.White,
            ForeColor = Color.Black
        };
        newRichTextBox.MouseDown += NewRichTextBox_MouseDown;
        cardPanel.Controls.Add(newRichTextBox);
    }

    private void NewRichTextBox_MouseDown(object sender, MouseEventArgs e) {
        RichTextBox rtx = (RichTextBox)sender;
        rtx.Capture = false;
        SendMessage(rtx.Handle, WM_SYSCOMMAND, new IntPtr(SC_MOVE | HTCAPTION), IntPtr.Zero);
    }

}