文本框的第一个字母到标题案例的类

时间:2017-06-14 09:01:54

标签: c#

我班上有什么不对吗?我只想将第一个字母和小写字母大写为大写字母。 我收到了一条错误消息

  

无法从void转换为object

这是我的班级:

class UpperCaseFirstLetter
{
    private string text; 
    public void SetText(Control control)
    {
        text = control.Text;
        text = CultureInfo.CurrentCulture.TextInfo.ToTitleCase(text.ToLower());
    }
下面的代码是我使用该类的地方:

newConnection.ConnectionM();
SqlCommand cmd = SqlConnectionOLTP.cn.CreateCommand();
cmd.CommandText = "Insert into CostCategory(CostCategoryName,Description) values (@costcategoryname,@description)";
cmd.Parameters.AddWithValue("@costcategoryname",Format.SetText(textBoxCostName));
cmd.Parameters.AddWithValue("@description", textBoxCostDescription.Text);
cmd.ExecuteNonQuery();
SqlConnectionOLTP.cn.Close();
MessageBox.Show("Save");

3 个答案:

答案 0 :(得分:3)

SetText会返回void,但在cmd.Parameters.AddWithValue中您正在使用它,因为它会返回值。将其更改为

public string SetText(Control control)
{
    text = control.Text;
    text = CultureInfo.CurrentCulture.TextInfo.ToTitleCase(text.ToLower());
    return text;
}

答案 1 :(得分:2)

这里有几点需要考虑:

  • 首先,您不需要为该任务上课,方法就足够了。事件方法不是必需的,您可以在适当的位置进行
  • 您的班级没有返回文字,也没有设置文字来控制
  • 你还没有实例化你的课程。

要实现这一目标,您可以简单地执行此操作

cmd.Parameters.AddWithValue("@costcategoryname",
    CultureInfo.CurrentCulture.TextInfo.ToTitleCase(textBoxCostName.Text));

答案 2 :(得分:0)

试试这个,

TextInfo control = new CultureInfo("en-US", false).TextInfo;
title = control.ToTitleCase(title);

enter image description here