MS Access连续窗体点击图片控件更换图片的问题
问题1:连续窗体图片控件点击无法切换行焦点的解决方法
在Access连续窗体中,图片控件的Click事件不会自动将焦点切换到点击的行,导致修改的始终是之前选中的行。解决方法是在事件开头手动将焦点切换到当前行的绑定控件(比如主键字段),确保后续修改的是点击行的记录:
修改后的代码如下:
Private Sub Imagen37_Click() ' 先切换焦点到当前行的绑定控件(替换为你表中的主键字段对应的控件名,比如ID) Me!ID.SetFocus Dim fDialog As Office.FileDialog Dim varFile As Variant Set fDialog = Application.FileDialog(msoFileDialogFilePicker) With fDialog .Title = "Seleccione un archivo de imagen" .Filters.Clear .Filters.Add "Imagenes", "*.png; *.jpg; *.bmp" .Filters.Add "All Files", "*.*" If .Show = True Then For Each varFile In .SelectedItems Me![Imagen] = varFile Next Else MsgBox "Has cancelado sin elegir archivo." End If End With End Sub
注意:如果主键控件不在窗体上显示,只需将该控件的Visible属性设为False即可,无需删除,确保它是绑定到窗体的控件。
问题2:按钮图片适配的解决方法
Access按钮的图片默认是裁剪显示,要让图片适配按钮,只需修改按钮的PictureSizeMode属性:
- 选择
fmPictureSizeModeStretch:拉伸图片填满按钮,可能会导致图片变形 - 选择
fmPictureSizeModeZoom:按图片原比例缩放,保持比例不变,多余部分裁剪
操作步骤:
- 打开窗体设计视图
- 选中目标按钮
- 在属性窗口找到
PictureSizeMode,选择上述任一选项即可
如果需要用代码设置,可在窗体的Load事件中添加:
Private Sub Form_Load() ' 替换为你的按钮控件名 Me!btnSelectImage.PictureSizeMode = fmPictureSizeModeZoom End Sub
内容的提问来源于stack exchange,提问作者Mara del Pilar Fernndez Andrs
相关产品推荐
相关产品推荐

