如何从datagrivew列添加字体大小

时间:2015-03-10 12:10:15

标签: c# xml winforms datagridview

欢迎我成为新会员。

我有一个包含7列的datagridview。所有这些都是加载到datagridview的xml文件。我的专栏是关注

部门,就业,永久,合同,字体化。

  1. 我有一个名为employees的xml文件,它被加载到我的datagridview
  2. 用户将从列单元格中捕获数据
  3. 在Fontsize列上。我希望用户只输入两个数字或一个用于输入当前行的字体大小。
  4. 如果用户输入的字体大小为10,则当前单元格行将更改字体大小(这意味着部门,就业,永久和合同将更改其字体大小)。
  5. 只会在当前选定的单元格上进行更改。例如,如果您更改columnIndex 1.只有列索引行将更改fontsize。
  6. 我已经做过仅允许数字的验证,但我希望它只取两个数字。
  7. 如何根据输入的数字更改列索引的字体大小。我知道字体对话框,但这不是我想要的,我已经将它用于其他客户项目。

    我有这个例子,但它并不是我想要的样子,因为它有风格。我只需要fontsize

    WinForms DataGridView font size

    我的验证

        private void Gridview_Output_CellEndEdit_1(object sender, DataGridViewCellEventArgs e)
        {
            try
            {
                #region this one validate the font number/ restrctions
                int RowIndex = e.RowIndex;
                int columnIndex = e.ColumnIndex;
                if (e.ColumnIndex == 2)
                {
                    bool validation = true;
                    if (Gridview_.Rows[RowIndex].Cells[columnIndex].Value != null && Gridview_.Rows[RowIndex].Cells[columnIndex].Value.ToString().Trim() != "")
                    {
                        string DataToValidate = Gridview_.Rows[RowIndex].Cells[columnIndex].Value.ToString();
                        foreach (char c in DataToValidate)
                        {
                            if (!char.IsDigit(c))
                            {
                                validation = false;
                                break;
                            }
                        }
                        if (validation == false)
                        {
                            MessageBox.Show("Font must be numbers only", "Error Message", MessageBoxButtons.OKCancel,MessageBoxIcon.Warning);
                            Gridview_.Rows[RowIndex].Cells[columnIndex].Value = "";
                        }
                    }
                }    
    

    加载文件

                   XmlDocument doc = new XmlDocument();
                    doc.Load(Employee);  
    

    我的gridview列索引

       Gridview_.Rows[i].Cells[1].Value.ToString(); // for Department
       Gridview_.Rows[i].Cells[2].Value.ToString(); // for Employment
       Gridview_.Rows[i].Cells[3].Value.ToString(); //for Permanent
       Gridview_.Rows[i].Cells[4].Value.ToString(); //for Contract
       Gridview_.Rows[i].Cells[5].Value.ToString(); //for Fontsize    
    

    感谢您的帮助,我希望我的问题足够有建设性

1 个答案:

答案 0 :(得分:0)

您链接的帖子是为列设置的正确方法。我从你的问题中收集了几件事:

  1. 您只想更改所选单元格。
  2. 您只想更改字体大小,而不是其他任何内容。
  3. 要更改特定的单元格字体,您可以执行以下操作:

    dgv.Rows[0].Cells[0].Style.Font = newFont;
    

    要仅设置字体大小,您需要使用以下内容将以前字体的属性置于其中:

    Font newFont = new Font(oldFont.FontFamily, 43, oldFont.Style, oldFont.Unit);