VSTO Excel,保存组合框文本,工作簿打开时组合框重置



我在Excel VSTO解决方案中有几个组合框。这些组合是windows窗体组合。

问题是,当用户重新打开电子表格时,我希望重新填充组合中的选定值。目前,我知道这些值是与电子表格一起保存的,我知道我在同一台机器上开发和测试时遇到了ClickOnce安装程序问题,我可以看到电子表格打开,安装程序去获取新版本。在此期间,我看到了我想要的组合值。

但是,一旦安装了自定义并初始化了电子表格,组合将重置为默认文本值。我可以想到一些方法来解决这个问题,包括使用缓存数据……有没有人知道,如果有一个简单的方法来保持组合从重置时电子表格打开?

我不知道这是否是最好的解决方案,但这就是我最终所做的。

我首先将组合嵌入到单元格中。

Friend WithEvents cmbType
Private Sub EmbedCombo()
   cmbType = Me.Controls.AddComboBox(Me.Range("A7"), "cmbType")
End Sub

然后我创建了一个sub来将Combo Text的值写入控件所在的单元格中。

Private Sub SaveComboText()
   Me.Range("A7").Value = Me.cmbType.Text
End Sub

最后一个将Cell Value写回Combo的例程。

Private Sub LoadComboText()
   Me.cmbType.Text = Me.Range("A7").Value  
End Sub

为了使其全部工作,我使用了保存事件前的工作簿和工作表。启动事件。

首先

Private Sub ThisWorkbook_BeforeSave() Handles Me.BeforeSave
    Globals.Sheet1.StoreComboValues()
End Sub
然后

Private Sub Sheet1_Startup() Handles Me.Startup
  Call LoadComboText()
End Sub

如果其他人知道更好的方法来避免这种情况,请告诉我:)

最新更新