Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/276.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 仅在初始打开时设置我的组合框的默认索引_C#_Winforms_Visual Studio 2012_Combobox - Fatal编程技术网

C# 仅在初始打开时设置我的组合框的默认索引

C# 仅在初始打开时设置我的组合框的默认索引,c#,winforms,visual-studio-2012,combobox,C#,Winforms,Visual Studio 2012,Combobox,针对这一问题: 根据该用户的说法,在Delphi IDE中,当您最初打开组合框时,可以在属性窗口中设置组合框的默认索引。但是,我在任何地方都找不到默认索引。当我指的是最初,我指的是不以编程方式,同时,当且仅当它最初打开时 我曾尝试通过组合框设置索引。SelectedIndex=0,但结果表明,我会在每次运行程序时设置索引,因此,这不仅在最初发生,而且在每次运行程序时都会发生。不是我想要的 是否有人知道我可以在“属性”或“参数事件”窗口中如何操作 当我最初打开程序时,它看起来是这样的: “我的属

针对这一问题:

根据该用户的说法,在Delphi IDE中,当您最初打开组合框时,可以在属性窗口中设置组合框的默认索引。但是,我在任何地方都找不到
默认索引。当我指的是最初,我指的是不以编程方式,同时,当且仅当它最初打开时

我曾尝试通过
组合框设置索引。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表示未选择任何项目。