C# 仅在初始打开时设置我的组合框的默认索引
针对这一问题: 根据该用户的说法,在Delphi IDE中,当您最初打开组合框时,可以在属性窗口中设置组合框的默认索引。但是,我在任何地方都找不到C# 仅在初始打开时设置我的组合框的默认索引,c#,winforms,visual-studio-2012,combobox,C#,Winforms,Visual Studio 2012,Combobox,针对这一问题: 根据该用户的说法,在Delphi IDE中,当您最初打开组合框时,可以在属性窗口中设置组合框的默认索引。但是,我在任何地方都找不到默认索引。当我指的是最初,我指的是不以编程方式,同时,当且仅当它最初打开时 我曾尝试通过组合框设置索引。SelectedIndex=0,但结果表明,我会在每次运行程序时设置索引,因此,这不仅在最初发生,而且在每次运行程序时都会发生。不是我想要的 是否有人知道我可以在“属性”或“参数事件”窗口中如何操作 当我最初打开程序时,它看起来是这样的: “我的属
默认索引。当我指的是最初,我指的是不以编程方式,同时,当且仅当它最初打开时
我曾尝试通过组合框设置索引。SelectedIndex=0
,但结果表明,我会在每次运行程序时设置索引,因此,这不仅在最初发生,而且在每次运行程序时都会发生。不是我想要的
是否有人知道我可以在“属性”或“参数事件”窗口中如何操作
当我最初打开程序时,它看起来是这样的:
“我的属性”选项卡:
编辑:我可以创建一个全局整数计数器,它在每次运行时递增,并且当且仅当整数为0时,默认值设置为0,这意味着这是第一次运行,但如果我可以不通过编程方式执行,这会更好。如果要将combobox的特定索引设置为默认值,请在表单加载中设置索引
private void Form1_Load(object sender, EventArgs e)
{
//To make combobox non editable
comboBox1.DropDownStyle = ComboBoxStyle.DropDownList;
//Set preferred index to show as default value
comboBox1.SelectedIndex = 2;
}
在设计时,您可以使用以下方式进行选择:
<ComboBox x:Name="OfferTypesComboBox" Grid.Row="2" Grid.Column="1" Margin="2" **SelectedIndex="0"**>
<ComboBoxItem Content="All" HorizontalAlignment="Left" Width="194"/>
<ComboBoxItem Content="HSIA" HorizontalAlignment="Left" Width="194"/>
<ComboBoxItem Content="IPTV" HorizontalAlignment="Left" Width="194"/>
</ComboBox>
您如何定义“最初”和“每次运行程序”之间的区别?即使您只是在设计器中设置了一个属性,它也会转换为一行代码,每次运行程序时都会在表单初始化时执行。如果我读得正确,当用户最初使用ComboBox
ABC加载屏幕时,您希望调用ComboBox.SelectedIndex=0
。要做到这一点,唯一的方法是在本地计算机或数据库中使用文件跟踪用户数据。我想我可能把我想要实现的解释复杂化了。我只是对设置默认索引感兴趣,所以当用户第一次打开我的程序时,他们看到的不是一个空白的,而是我的项目集合的第一个索引。如果你想在表单加载时显示一个值,而不是空项目,那么使用comboBox1.SelectedText=“DisplayValue”代码>你需要将值存储在某个地方,这样一旦设置好,你就可以知道它已经存在,并且可以在应用程序启动时恢复该值。然后,您将能够判断这是首次(首次)运行,因为存储的值还不存在,您可以将SelectedIndex
设置为0或SelectedText
设置为一些默认文本。我们可以将默认索引设置为0吗?事实上,当我的项目数为2时,我面临着同样的问题,我设置了索引0,我得到了索引-1。如何解决组合框在表单加载后保持焦点的问题?将焦点设置为另一个控件并使用SendKeys并不会移除焦点,只是想知道您是否知道如何解决它。谢谢。@AshishJain组合框项目索引是从零开始的,它从0开始。索引零是第一个项目,-1表示未选择任何项目。