1

私を完全に困惑させた問題に遭遇しました。

多くの列と行を持つ動的に追加された DataGridView があり、達成しようとしているのは mouse_up で、選択したセルにボタンを描画したいです。たとえば、row3 の最初の 3 つのセルを選択すると、3 つのセルの上にボタンを描画する必要があります。

選択した各セルの X と Y を使用してボタン列に変換しようとしましたが、うまくいきませんでした。私が現在持っているのは、画面にボタンを追加するだけのサンプルコードですが、画面には表示されません (したがって、タイトル)。画面にボタンが表示されたら、選択したセルの上にボタンを描画しようとしますが、最初にこのハードルを乗り越える必要があります

これは私が使用しているコードです:

    'I dynamically add the DataGridView
    Grid = New DataGridView
    Grid.Dock = DockStyle.Fill
    Grid.BackgroundColor = Color.White
    Grid.RowHeadersVisible = False
    Grid.AllowUserToOrderColumns = False
    Grid.AllowUserToResizeRows = False

    ...

    TabControl.SelectedTab.Controls.Add(Grid)

    AddHandler Grid.CellMouseUp, AddressOf Grid_MouseUp

    ...
   'On mouse up it calls the sub to add buttons
    Private Sub Grid_MouseUp(ByVal sender As Object, ByVal e As         System.Windows.Forms.DataGridViewCellMouseEventArgs)

    Dim i As Integer

    For i = 1 To 30
        NewButton(i) 'calls the dub
    Next i

End Sub

'これはサブです

Private Sub NewButton(ByVal ButtonNumber As Integer)

    Dim oButton As Button
    oButton = New Button
    oButton.Enabled = True
    oButton.Location = New Point(ButtonNumber + 50, ButtonNumber + 50)
    oButton.Name = "MyButton" & ButtonNumber.ToString
    oButton.Size = New Size(75, 23)
    oButton.Text = "Button" & ButtonNumber.ToString
    oButton.Visible = True

    oButton.Tag = ButtonNumber

    TabControl.SelectedTab.Controls.Add(oButton)
End Sub

この機能を実現するために何を変更する必要があるかを提案していただければ幸いです。

御時間ありがとうございます

4

1 に答える 1

1

ボタンが他のコントロールの下にoButton.BringToFront()ある可能性があります。Tabcontrol コントロールにボタンを追加した後、呼び出してみてください。

于 2012-10-31T11:46:41.693 に答える