1

DataGridView の ColumnHeaderMouseDoubleClick イベントに応答する次の関数があります。

void grid_ColumnHeaderMouseDoubleClick(object sender, DataGridViewCellMouseEventArgs e) {
    TextBox t = new TextBox();
    //make the new textbox the same size as the header to cover it up until text is entered
    t.Width = ((DataGridView)sender).CurrentCell.ContentBounds.Width;
    t.Height = ((DataGridView)sender).CurrentCell.ContentBounds.Height;
    t.Dock = DockStyle.Fill;
    t.Visible = true;
    t.BringToFront();
    t.Text = "TEST";
    Controls.Add(t);
}

このコードはすべて、Panel を拡張し、パネルのコントロールに DataGridView を追加したクラス内で発生しています。ヘッダーをダブルクリックしてこのハンドラーにブレークポイントを設定すると、ハンドラーが呼び出されますが、テキストボックスがどこにも表示されません。私が間違っていることを誰かが知っていますか?

4

1 に答える 1

0

テキストボックスをクラスフィールドにすることから始めます(イベントトリガーの外で宣言して、最後までスコープ外にならないようにします)。textBox の座標も設定する必要があるかもしれません:)。これを試すためにこのマシンに VS はありませんが、これが役立つことを願っています。

于 2012-05-18T18:10:52.377 に答える