الاثنين، 11 أبريل 2011

How to Make an Arabic Column in DataGridView


Introduction
Some people make applications that have an Arabic Interface. We cannot name any column in Arabic in any RDBMS, however DataGridView can solve this problem by giving an Arabic name to your column when you display your data.
Using the Code
There are two ways to make an Arabic column in DataGridView.
The first way is very easy and can be done by changing the header text of DataGridView as follows:
http://www.codeproject.com/images/minus.gif Collapse
dataGridView1.Columns[0].HeaderText = "???????";

dataGridView1.Columns[1].HeaderText = "?????";

dataGridView1.Columns[2].HeaderText = "?????";
The second way is that DataGridViewTextBoxColumn is used to host cells that enable displaying and editing of text strings.
Steps
  1. Create an instance from DataGridViewTextBoxColumn class
  2. Add cells you created to be hosted in dataGridView1:
http://www.codeproject.com/images/minus.gif Collapse
dataGridView1.Columns.AddRange(new DataGridViewTextBoxColumn[] {
        idDataGridViewTextBoxColumn,
        nameDataGridViewTextBoxColumn,
        ageDataGridViewTextBoxColumn});
  1. Ok, after you add cells to dataGridView, you want to make a link between the cell which you write Arabic text on and the column:
http://www.codeproject.com/images/minus.gif Collapse
idDataGridViewTextBoxColumn.DataPropertyName = "id";
idDataGridViewTextBoxColumn.HeaderText = "?";
Example
http://www.codeproject.com/images/minus.gif Collapse
DataGridViewTextBoxColumn idDataGridViewTextBoxColumn;
DataGridViewTextBoxColumn nameDataGridViewTextBoxColumn;
DataGridViewTextBoxColumn ageDataGridViewTextBoxColumn;

private void Form1_Load(object sender, EventArgs e)
{
    idDataGridViewTextBoxColumn = new DataGridViewTextBoxColumn();
    nameDataGridViewTextBoxColumn = new DataGridViewTextBoxColumn();
    ageDataGridViewTextBoxColumn = new DataGridViewTextBoxColumn();

    dataGridView1.Columns.AddRange(new DataGridViewTextBoxColumn[] {
        idDataGridViewTextBoxColumn,
            nameDataGridViewTextBoxColumn,
            ageDataGridViewTextBoxColumn});

        using (SqlConnection sqlCon = new SqlConnection(
            @"Data Source=.\SQLEXPRESS;AttachDbFilename=" +
            "C:\Documents and Settings\Administrator\My Documents\AhmedRabie.mdf;" +
            "Integrated Security=True;Connect Timeout=30;User Instance=True"))
        {
            SqlCommand cmd = sqlCon.CreateCommand();
            cmd.CommandText = "Select * from StudentInfo";
            SqlDataAdapter adapter = new SqlDataAdapter();
            adapter.SelectCommand = cmd;
            DataSet dset = new DataSet();
            adapter.Fill(dset);

            idDataGridViewTextBoxColumn.DataPropertyName = "id";
            idDataGridViewTextBoxColumn.HeaderText = "?";
            idDataGridViewTextBoxColumn.Name = "idDataGridViewTextBoxColumn";
            //
            // nameDataGridViewTextBoxColumn
            //
            nameDataGridViewTextBoxColumn.DataPropertyName = "name";
            nameDataGridViewTextBoxColumn.HeaderText = "?????";
            nameDataGridViewTextBoxColumn.Name = "nameDataGridViewTextBoxColumn";
            //
            // ageDataGridViewTextBoxColumn
            //
            ageDataGridViewTextBoxColumn.DataPropertyName = "age";
            ageDataGridViewTextBoxColumn.HeaderText = "?????";
            ageDataGridViewTextBoxColumn.Name = "ageDataGridViewTextBoxColumn";

            dataGridView1.DataSource = dset.Tables[0];
        }
}

0 التعليقات: