ListBox项目来自其他类中声明的字符串可能吗?

时间:2013-03-02 03:59:25

标签: c# icsharpcode

与此主题相关: https://stackoverflow.com/questions/15170054/context-hint-using-combobox

有没有办法可以在单独的类中使用字符串:

namespace KeyWord
{
    public class KeyWord
    {
        //Definitions
    public String[] keywords = { "abstract", "as", "etc." };
    }
}

到我的主窗体中的mylistbox项目?

lb = new ListBox();
        Controls.Add(lb);
事先提前

1 个答案:

答案 0 :(得分:0)

不确定。尝试这样的事情。

KeyWord kw = new KeyWord();
foreach (string str in kw.keywords)
{
    lb.Items.Add(str);
}

或者您可以使用数据绑定。

此外,如果你所做的只是从该类获取一个字符串数组,你可能想要使用静态属性,这样你就不必实例化该对象的实例。我建议使用属性以暴露公共数据,而不是公共字段。

以下是使用静态属性的示例:

public class KeyWord
{
    // Private field, only accessible within this class
    private static string[] _keywords = { "abstract", "as", "etc." };

    // Public Static Property, accessible wherever
    public static string[] Keywords
    {
        get { return _keywords; }
        set { _keywords = value; }
    }
}

然后:

foreach (string str in KeyWord.Keywords)
{
    lb.Items.Add(str);
}

注意,我没有在这个例子中实例化该类(没有new KeyWords()