如何在Excel VBA中设置要为activeX组合框显示的项目数?我试试这段代码。无论我在第二行设置的号码,总是默认8项,因为msgbox会吐出来。
public async Task AddPatientReportDentalChartAsync(AddPatientReportDentalChartInput input)
{
var pid = input.PatientID;
var chartdetails = _chartReportRepository
.GetAll()
.WhereIf(!(pid.Equals(0)),
p => p.PatientID.Equals(pid)).ToList();
if (chartdetails.Count > 0)
{
var entity = await _chartReportRepository
.YourTableName
.FindAsync(entity => entity.SomeId == matchingId);
entity.PropertyA = "something"
entity.PropertyB = 1;
await _chartReportRepository.SaveChangesAsync();
}
else
{
var patientinfo = input.MapTo<PatientReportDentalChart>();
await _chartReportRepository.InsertAsync(patientinfo);
}
}
答案 0 :(得分:1)
您需要使用Control对象.. 此代码来自https://msdn.microsoft.com/en-us/library/office/ff193982.aspx
Dim ListControl As Control
Set ListControl = Forms!Customers!CustomerList
With ListControl
If .ListCount < 8 Then
.ListRows = .ListCount
Else
.ListRows = 8
End If
End With
以下代码使用此逻辑并将其应用于我的Form(UserForm1)组合框(Combobox1)。这反过来附加到按钮单击事件(CommanButton5)。更改J循环中的数字以查看显示的不同行数。注意:这不会改变Combobox中的行数,它只是限制初始下拉列表中的行数。您只能通过AddItem / RemoveItem更改组合框中显示的行!
Private Sub CommandButton5_Click()
Dim j As Integer
For j = 0 To 10
ComboBox1.AddItem j
Next
Me.Repaint
Dim ListControl As Control
Set ListControl = UserForm1!ComboBox1
With ListControl
If .ListCount < 8 Then
.ListRows = .ListCount
Else
.ListRows = 8
End If
End With
Me.Repaint
End Sub
注意:如果您在Form Initialize事件中控制它,则不需要Me.Repaint
答案 1 :(得分:0)
您的代码正在&#34;已编码&#34;。
ComboBox1.ListCount
会在Items
List
的金额
ComboBox1.ListRows = 4
设置您需要开始滚动之前可以看到的Items
数量的值。
如果您想更改Items
中List
的数量,则必须更改来源或使用RemoveItem
方法。