[dba-VB] C# combo boxes

Jim Lawrence accessd at shaw.ca
Mon Mar 14 18:59:26 CDT 2011


Hi John:

Try and use ADO. It is on every Windows based computer already and requires
no additional ODBC to be setup. In other words, you do not even have to see
the computers on which the application is going to have a sable connection.

Jim



-----Original Message-----
From: dba-vb-bounces at databaseadvisors.com
[mailto:dba-vb-bounces at databaseadvisors.com] On Behalf Of jwcolby
Sent: Monday, March 14, 2011 3:25 PM
To: Discussion concerning Visual Basic and related programming issues.
Subject: Re: [dba-VB] C# combo boxes

I am trying (unsuccessfully) to do an "Access like bound form".

And I always comment.  ;)

ATM the form displays the values if dropped down, but if not dropped down it
just displays an 
integer (the PKID of the data in the combo is my guess, or perhaps the PKID
in the field in the form.

So...

How do I cause the combo to display Paul's name instead of 6.

John W. Colby
www.ColbyConsulting.com

On 3/14/2011 6:15 PM, Gustav Brock wrote:
> Hi John
>
> Eh, are you commenting or? Not quite clear to me. I thought you were
looking for some code samples ...
>
> I have connections too but I use them only to feed the datatableadapters.
I refrain from working with SqlCommand and the like; waste of time in my
opinion.
>
> /gustav
>
>
>>>> jwcolby at colbyconsulting.com 14-03-2011 22:36>>>
> Thanks Gustav,
> I don't know why you are taking me into code in code.
>
> I have data connections.  This particular data connection has a single
view that allows me to write
> into a table.  It has a view that filters a combo.
>
> I drag and drop the view for the table onto the form.  I have told that
table object that specific
> fields are combos so when I drag it out, I have combos (for the FKs - PKs
from other tables).  I am
> trying to set up that combo to
>
> 1) Display a text value
> 2) Contain the PKID from the table the combo draws from
> 3) When I select an item, place the selected ID into the field the combo
is bound to.
>
> It seems this is a normal daily requirement in building forms, and
shouldn't be rocket science (or
> going into code).
>
> Actually I have a kinda sorta related question.
>
> When I look at server explorer I see a data connection object, however
there are two objects
> underneath, neither of which are for this solution.  Furthermore the
objects under the data
> connection are things found on an entirely unrelated server, for other
projects that I did work on
> in the past.
>
> The question then is why is the server explorer choosing to display
objects out on a virtual machine
> instead of the database that was originally selected for this solution?
>
> We have done a ton of coding sql server stuff here but we have not yet
learned how to do this bound
> form stuff.
>
> I am trying to build a timeclock kind of thing.  Very simple, a few combos
to select (default values
> in most cases) the developer, the product, the type of work, then a couple
of fields for date time
> values for start / stop work.  The table the data is going into has a few
thousand records already
> in it, the combos pull from tables with 20-30 records etc.  It seems (to
me) that just using bound
> forms is a natural for this.
>
> A long time ago I made this (kind of thing) work.  I remember that getting
the properties of the
> combo set correctly was non-intuitive but once I figured it out it just
worked.
>
>
>
> John W. Colby
> www.ColbyConsulting.com
>
> On 3/14/2011 3:02 PM, Gustav Brock wrote:
>> Hi John
>>
>> If you (typically) have this in InitializeComponent() of the .Designer.cs
file:
>>
>>               // comboBoxCountry
>>               //
>>               this.comboBoxCountry.AutoCompleteMode =
System.Windows.Forms.AutoCompleteMode.Suggest;
>>               this.comboBoxCountry.AutoCompleteSource =
System.Windows.Forms.AutoCompleteSource.ListItems;
>>               this.comboBoxCountry.BackColor =
System.Drawing.Color.LavenderBlush;
>>               this.comboBoxCountry.DataBindings.Add(new
System.Windows.Forms.Binding("SelectedValue", this.mediaBindingSource,
"CountryId", true));
>>               this.comboBoxCountry.DisplayMember = "Id";
>>               this.comboBoxCountry.FlatStyle =
System.Windows.Forms.FlatStyle.Flat;
>>               this.comboBoxCountry.Font = new System.Drawing.Font("Segoe
UI", 8F, System.Drawing.FontStyle.Regular,
System.Drawing.GraphicsUnit.Point, ((byte)(0)));
>>               this.comboBoxCountry.ForeColor =
System.Drawing.Color.DarkMagenta;
>>               this.comboBoxCountry.FormattingEnabled = true;
>>               this.comboBoxCountry.ItemHeight = 13;
>>               this.comboBoxCountry.Location = new
System.Drawing.Point(21, 136);
>>               this.comboBoxCountry.Name = "comboBoxCountry";
>>               this.comboBoxCountry.Size = new System.Drawing.Size(117,
21);
>>               this.comboBoxCountry.Sorted = true;
>>               this.comboBoxCountry.TabIndex = 7;
>>               this.comboBoxCountry.ValueMember = "Id";
>>
>> You can do something like this in the Load event:
>>
>>               this.comboBoxCountry.SelectedValueChanged += (oo, ee) =>
ChangeCountrySelection();
>>
>> Then:
>>           private void FillComboBoxCountryCode()
>>           {
>>               // Order the country names of countryDataTable.
>>               string filterExpression = "";
>>               string sortExpression = "CountryNameUK asc";
>>               DataRow[] countryList =
_countryDataTable.Select(filterExpression, sortExpression);
>>
>>               this.comboBoxCountry.DataSource = countryList;
>>               this.comboBoxCountry.ValueMember = "Id";
>>               this.comboBoxCountry.DisplayMember = "CountryNameUK";
>>           }
>>
>> And:
>>           private void ChangeCountrySelection()
>>           {
>>               if (this.comboBoxCountry.SelectedValue != null)
>>               {
>>                   _countryId =
Convert.ToInt32(this.comboBoxCountry.SelectedValue);
>>                   this.comboBoxPostalCode.Text = String.Empty;
>>                   // Read postal codes of selected country.
>>                   FillComboBoxPostalCode();
>>               }
>>           }
>>
>> This is pretty standard using tableadapters and bindingnavigator. Nothing
fancy.
>>
>> /gustav
>>
>>
>>>>> jwcolby at colbyconsulting.com 14-03-2011 19:16>>>
>> I am trying to set up a combo box bound to a field in the form such that
the combo populates with
>> the PKID and a text field, and when the form opens, selecting something
from the combo drops the
>> PKID into the field in the form.
>>
>> I am not getting what to set the properties of the combo box to.  I am
pulling the ID and the string
>> to display into the combo but I cannot cause the combo to store the id
and release control to the
>> next control on the form.
>
> _______________________________________________
> dba-VB mailing list
> dba-VB at databaseadvisors.com
> http://databaseadvisors.com/mailman/listinfo/dba-vb
> http://www.databaseadvisors.com
>
>
_______________________________________________
dba-VB mailing list
dba-VB at databaseadvisors.com
http://databaseadvisors.com/mailman/listinfo/dba-vb
http://www.databaseadvisors.com




More information about the dba-VB mailing list