以下是一个用VB编写的模拟表格的示例代码,包括当前选中的图片和鼠标右键的功能实现。

Imports System.Windows.Forms

Public Class Form1
    Inherits Form

    Private WithEvents dataGridView1 As New DataGridView()
    Private WithEvents contextMenu1 As New ContextMenuStrip()
    Private selectedImage As Image

    Public Sub New()
        ' 初始化表格控件
        dataGridView1.Dock = DockStyle.Fill
        Controls.Add(dataGridView1)

        ' 初始化右键菜单
        contextMenu1.Items.Add("选中图片")
        contextMenu1.Items.Add("右键菜单项1")
        contextMenu1.Items.Add("右键菜单项2")

        ' 设置表格的右键菜单
        dataGridView1.ContextMenuStrip = contextMenu1
    End Sub

    ' 选中右键菜单项时的事件处理程序
    Private Sub MenuItem_Click(sender As Object, e As EventArgs) Handles contextMenu1.ItemClicked
        Dim selectedItem As ToolStripMenuItem = CType(sender, ToolStripMenuItem)

        If selectedItem.Text = "选中图片" Then
            ' 显示一个文件对话框,让用户选择图片文件
            Dim openFileDialog1 As New OpenFileDialog()
            openFileDialog1.Filter = "图片文件|*.jpg;*.jpeg;*.png"
            openFileDialog1.Title = "选择图片文件"
            If openFileDialog1.ShowDialog() = DialogResult.OK Then
                ' 加载选中的图片文件
                selectedImage = Image.FromFile(openFileDialog1.FileName)
                ' 在消息框中显示选中的图片
                MessageBox.Show("选中了图片:" & openFileDialog1.FileName)
            End If
        Else
            ' 处理其他的右键菜单项
            MessageBox.Show("选中了右键菜单项:" & selectedItem.Text)
        End If
    End Sub

    ' 在表格中右键单击时的事件处理程序
    Private Sub dataGridView1_MouseClick(sender As Object, e As MouseEventArgs) Handles dataGridView1.MouseClick
        If e.Button = MouseButtons.Right Then
            ' 获取鼠标右键的坐标
            Dim mousePosition As Point = dataGridView1.PointToClient(Cursor.Position)
            ' 在鼠标右键的位置显示右键菜单
            contextMenu1.Show(dataGridView1, mousePosition)
        End If
    End Sub

    ' 在表格中选中单元格时的事件处理程序
    Private Sub dataGridView1_CellClick(sender As Object, e As DataGridViewCellEventArgs) Handles dataGridView1.CellClick
        ' 判断选中的单元格是否包含图片
        If dataGridView1.Columns(e.ColumnIndex).DefaultCellStyle.NullValue IsNot Nothing Then
            ' 获取选中单元格的图片
            selectedImage = CType(dataGridView1.Rows(e.RowIndex).Cells(e.ColumnIndex).Value, Image)
            ' 在消息框中显示选中的图片
            MessageBox.Show("选中了图片")
        End If
    End Sub

    ' 在表格中绘制单元格时的事件处理程序
    Private Sub dataGridView1_CellPainting(sender As Object, e As DataGridViewCellPaintingEventArgs) Handles dataGridView1.CellPainting
        ' 判断单元格是否包含图片
        If e.ColumnIndex >= 0 AndAlso e.RowIndex >= 0 AndAlso dataGridView1.Columns(e.ColumnIndex).DefaultCellStyle.NullValue IsNot Nothing Then
            ' 绘制单元格背景
            e.PaintBackground(e.CellBounds, True)
            ' 绘制图片
            e.Graphics.DrawImage(CType(dataGridView1.Rows(e.RowIndex).Cells(e.ColumnIndex).Value, Image), e.CellBounds.Location)
            e.Handled = True
        End If
    End Sub

    Public Shared Sub Main()
        Application.Run(New Form1())
    End Sub
End Class

这段代码创建了一个包含表格控件的窗体,当在表格中选中单元格时,会显示一个消息框提示选中了图片。当在表格中右键单击时,会显示一个右键菜单,其中包括一个选中图片的菜单项。选中图片的菜单项会弹出一个文件对话框,让用户选择图片文件,并在消息框中显示选中的图片文件路径

表格用vb写模拟 当前选中的图片鼠标右键

原文地址: http://www.cveoy.top/t/topic/hXEk 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录