• 0

[C#] ComboBox Specified Cast Not Valid!


Question

This is the code:

cmbBalSheetCat.Items.Clear();
cmbBalSheetCat.DataSource = dtResults;
cmbBalSheetCat.ValueMember = "BalanceSheetCategoryID";
cmbBalSheetCat.DisplayMember = "BalanceSheetCategoryName";
cmbBalSheetCat.SelectedIndex = -1;

It errors on setting the .ValueMember saying the 'Specified cast is not valid'.

dtResults is populated like so:

dtResults = new DataTable();
dtResults.Columns.Add("BalanceSheetCategoryIDddtResults.Columns.Add("BalanceSheetCategoryNameddtResults.Columns.Add("BalanceSheetCategoryOrderforeach( BalSheetCatData objBalSheetCatData in this.Values )
{
	DataRow dtRow = dtBalSheetCats.NewRow();
	dtRow["BalanceSheetCategoryID"] = objBalSheetCatData.BalanceSheetCategoryID;
	dtRow["BalanceSheetCategoryName"] = objBalSheetCatData.BalanceSheetCategoryName;
	dtRow["BalanceSheetCategoryOrder"] = objBalSheetCatData.BalanceSheetCategoryOrder;
	dtResults.Rows.Add( dtRow );
}

I dont understand why im getting this error. I have similar code for a combo on a different form that works fine!!

Do i need to specify column types or something? If so, how comes it works fine without it on other forms and not this one?

Any ideas?

Link to comment
https://www.neowin.net/forum/topic/416380-c-combobox-specified-cast-not-valid/
Share on other sites

4 answers to this question

Recommended Posts

  • 0

__________________________________________________________________

Ah ok... just found its not the .ValueMember line that it is erroring on. Its because the combo has an associated _SelectedIndexChanged() method and its erroring inside there.

To fix the problem, ive used a boolean value to store whether the combo data has been loaded and the _SelectedIndexChanged() only executes code when that boolean is true.

But this seems somewhat feeble... is there a better way of doing this? A setting ive missed?

  • 0

Just a quick note to give u a helping hand, Databinding an Array of objects or values (MyObject[]) isn't the same as binding an ArrayList of MyObject for example. The former been non enumerable by default and wont store the combobox wont store ValueMember.

Ie.

MyObject[] objMyObjects = null;

... initialize myobjects array...

Combobox1.DisplayMember = "Description";

Combobox1.ValueMember = "ID";

Combobox1.DataSource = objMyObjects;

this will cause the Combobox1 to not hold the selected objects value as it isnt Enumerable. A nice way around this would be too simply to do following...

MyObject[] objMyObjects = null;

... initialize myobjects array...

Combobox1.DisplayMember = "Description";

Combobox1.ValueMember = "ID";

Combobox1.DataSource = new ArrayList(objMyObjects);

This will enable enumeration for ur combobox, and as such it will hold the values correctly.

This topic is now closed to further replies.
  • Recently Browsing   0 members

    • No registered users viewing this page.
  • Posts

    • Come the hell on, do we need clickbait titles? "Overwatch 2" - 11 characters "a popular multiplayer hero shooter" - 34 characters What's the purpose here - delivering news or titles for clicks? I think we all know the answer. You're straying into "Number 7 on this list will SHOCK you" territory and while it may work on some crappy sites, this is why they are crappy sites. Just tell the story! Go back and look at popular articles that made Neowin what it was. Did they have headlines of "New OS from major technology conglomerate has astonishing new feature" or is it likely to tell the story succinctly and then elaborate within the content?
    • You can now generate video clips with sound using Veo 3 in Google Vids by David Uzondu Last month, we reported that Google was adding its Veo 2 video generation model into the Google Vids editor. The company has now followed that by rolling out its latest Veo model, Veo 3, which was unveiled at I/O 2025 and went viral recently for its shockingly realistic clips. The main addition this time is the ability to generate both video and synchronized audio directly from a text prompt. Anyone with a compatible Google Workspace plan can now generate 8-second clips right inside a Vids project. You find the "Generate video" icon in the editor, pick Veo 3, and then type out what you want to see and hear. Google's examples include things like a spokesperson delivering a line for a product demo or an employee giving an intro to a safety video. The model is good enough to generate dialogue that actually syncs with the character’s lips. Once you create a clip, you can just insert it into your video. And, if the audio it spits out is garbage, you have the option to mute the clip. The generated clips are currently capped at 720p resolution and run at 24FPS, a far cry from the 4K potential Veo 3 has as a standalone model. Still, getting functional audio generation built-in is a huge step. This native sound capability is what really sets it apart from competitors like OpenAI's Sora, which primarily generates silent videos. Google began pushing out the feature recently, but do not worry if you do not see it immediately in your account. The company is doing a gradual rollout that can take up to 15 days to complete, so your access will depend on which wave your account is in and whether your company's admin uses the Rapid or Scheduled Release track. Access is fairly widespread for paying customers on Google Workspace, including those on Business Standard and Plus, as well as Enterprise Standard and Plus plans. It is also available for Essentials, Nonprofits, and even the lower-tier Business Starter and Enterprise Starter plans. For now, the AI generation only understands prompts in English, and all videos are invisibly watermarked to identify them as AI-generated.
    • My dear freedonX, have you thought about giving Linux a try? If you don't want to be nagged, that's surely the best place to go. And as long as you stick to something simple, you won't need to touch the command line once.
    • For windows, you have winget and chocolatey. For linux, you've got other package managers depending of the base, apt, dnf, zypper, pacman... I dunno about Mac, but even if it doesn't have an accessible package manager, there surely is a store, or worst case, http requests, curl, wget, or something similar.
  • Recent Achievements

    • First Post
      Kurotama earned a badge
      First Post
    • Collaborator
      Carltonbar earned a badge
      Collaborator
    • Explorer
      MusicLover2112 went up a rank
      Explorer
    • Dedicated
      MadMung0 earned a badge
      Dedicated
    • Rookie
      CHUNWEI went up a rank
      Rookie
  • Popular Contributors

    1. 1
      +primortal
      508
    2. 2
      ATLien_0
      270
    3. 3
      +FloatingFatMan
      248
    4. 4
      +Edouard
      201
    5. 5
      snowy owl
      168
  • Tell a friend

    Love Neowin? Tell a friend!