Format datagrid column width

This is .net CF Datagrid for windows mobile using VS 2005.
My code does not throw errors but it does not work.
I just want to set the width of a column
Private Sub MenuItem3_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MenuItem3.Click
        'Populate windows DataGridView control
        DataGrid1.DataSource = webref.GetBulletins(InputBox("Enter part of name to search for: ", "Retrieve Bulletins"))
        Debug.Write("Mapping Name:" & DataGrid1.TableStyles.Item(0).MappingName.ToString)
        Debug.Write(" TableStyle:" & DataGrid1.TableStyles.Item(0).ToString)
        Dim ts As New DataGridTableStyle
        'ts = DataGrid1.TableStyles.Item(0)
        ts.MappingName = DataGrid1.TableStyles.Item(0).ToString
        Dim aCol1 As New DataGridTextBoxColumn
        Debug.Write(" aCol1.MappingName: " & aCol1.MappingName.ToString)
        With aCol1
            .MappingName = "IDKey"
            .Width = 5
            .HeaderText = "Delete me"
        End With
        With ts.GridColumnStyles
        End With
        Debug.Write(" Count of GridColumn Styles" & ts.GridColumnStyles.Count)
        ' ***
    End Sub

Open in new window

Who is Participating?
swendellConnect With a Mentor Author Commented:

Thank you for the reply. Not many people on EExchange seem to work in this area. As you can see, I get my datasource from a webservice:
DataGrid1.DataSource = webref.GetBulletins

So I guess I need to know how to ask at run time for the datatable name since I don't know what it is. Can you help me figure that out? Once I know the name; I can use it in my code as you suggested for the Mappingname. Maybe something like:
Debug.Write("Table name that should be used for MappingName:" & datagrid1.DataSource.?????).
kaylanreilorConnect With a Mentor Commented:
Perhaps the mapping name of the DataGridTableStyle is not good in your code. If you have a look to the documentation here ( - or choose another framework if you prefer from the same page) they are setting the mapping name with the matching table name. Probably your code should be something around this:
(depending what is the source of your DataGrid)
' dt is a table set with myDataSetSource.Tables(0)
ts.MappingName = dt.TableName

Open in new window

swendellAuthor Commented:
OK, I figured out how to find the name of the table to use for the .MappingName when the datagrid's datasource is a web service. I simply invoked the web service in my web browser and the.XML response contained the table name I needed to use. In the example below it is: Bulletins.  

 <?xml version="1.0" encoding="utf-8" ?> 
- <DataTable xmlns="">
- <xs:schema id="NewDataSet" xmlns="" xmlns:xs="" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata">
- <xs:element name="NewDataSet" msdata:IsDataSet="true" msdata:MainDataTable="Bulletins" 

Open in new window

So, are going to code something like this now:
ts.MappingName = NewDataSet.Tables("Bulletins").TableName ? :) funny
Or just give a first try by hard coding
ts.MappingName = "Bulletins" ?
swendellAuthor Commented:
Correct, this worked
ts.MappingName = "Bulletins"
Question has a verified solution.

Are you are experiencing a similar issue? Get a personalized answer when you ask a related question.

Have a better answer? Share it in a comment.

All Courses

From novice to tech pro — start learning today.