Sign Up

Sign Up to our social questions and Answers Engine to ask questions, answer people’s questions, and connect with other people.

Have an account? Sign In

Have an account? Sign In Now

Sign In

Login to our social questions & Answers Engine to ask questions answer people’s questions & connect with other people.

Sign Up Here

Forgot Password?

Don't have account, Sign Up Here

Forgot Password

Lost your password? Please enter your email address. You will receive a link and will create a new password via email.

Have an account? Sign In Now

You must login to ask a question.

Forgot Password?

Need An Account, Sign Up Here

Please briefly explain why you feel this question should be reported.

Please briefly explain why you feel this answer should be reported.

Please briefly explain why you feel this user should be reported.

Sign InSign Up

The Archive Base

The Archive Base Logo The Archive Base Logo

The Archive Base Navigation

  • SEARCH
  • Home
  • About Us
  • Blog
  • Contact Us
Search
Ask A Question

Mobile menu

Close
Ask a Question
  • Home
  • Add group
  • Groups page
  • Feed
  • User Profile
  • Communities
  • Questions
    • New Questions
    • Trending Questions
    • Must read Questions
    • Hot Questions
  • Polls
  • Tags
  • Badges
  • Buy Points
  • Users
  • Help
  • Buy Theme
  • SEARCH
Home/ Questions/Q 8365283
In Process

The Archive Base Latest Questions

Editorial Team
  • 0
Editorial Team
Asked: June 9, 20262026-06-09T12:37:25+00:00 2026-06-09T12:37:25+00:00

I am currently working on an application that will create a TV Guide application

  • 0

I am currently working on an application that will create a TV Guide application in C# .NET. The issue is that when a user selects an option to open the TV Guide, I would like to keep the current stream playing, but minimize it to the upper right corner and keep it playing while allowing the user to browse the EPG data and have a smaller video playing.

Should I just place all of the labels/buttons/etc. over the top of the Panel (what I use to display the actual video in), and hide/show them as needed, or is there a better approach to this?

On a side note, I am assuming Labels will be the best solution for the displaying the current channel information in, but if there are any better options, I would love to hear them.

enter image description here

  • 1 1 Answer
  • 0 Views
  • 0 Followers
  • 0
Share
  • Facebook
  • Report

Leave an answer
Cancel reply

You must login to add an answer.

Forgot Password?

Need An Account, Sign Up Here

1 Answer

  • Voted
  • Oldest
  • Recent
  • Random
  1. Editorial Team
    Editorial Team
    2026-06-09T12:37:27+00:00Added an answer on June 9, 2026 at 12:37 pm

    I am going to answer based on the assumption that this is a native windows winforms app running in windows. If this is incorrect, please edit your question and provide more details about your project and target platform.

    Choice #1 is DirectX

    These kind of multimedia apps are really best written using DirectX. You are essentially writing a “game” from a video performance perspective (and possible user input perspective too). You want to maintain video streaming while displaying a menu (perhaps even animating the menu). DirectX will allow you take advantage of modern graphics processors to draw/render a nice menu/ui with video somewhere on the screen.

    Could you do this without writing your own menu rendering using DirectX? Probably. But it would be heavy and likely to impact system perfrmance or at the very least video performance and overall application performance.

    So Choice #1 is DirectX – There will be examples of this kind of programming by searching the web for ‘C# game programming’.

    Using something like DirectX and handling user input over the entire app surface will allow a lot more control over user input too. For example you might decide to support drag style scrolling. The whole menu could smoothly scroll up to expose more channel below, etc… This is going to be very dificult with a collection of numerous winform controls like buttons and rather easy (or at least realistic) with DirectX.

    Choice #2 – Winforms

    Ok now Choice #2 that you were hinting at in your question was using native C# controls like button, label, panel, etc. You could make this work, but you will be sacrificing a lot feature capabilities and costing a lot in performance.

    For example lets look at the screen shot you posted. I assume that table would be divided up into buttons where each cell is one button on the panel? You could click a channel to select it or click a show to start watching that one? (I’m guessing here.) It looks like at least 22 buttons in that screen shot. Now lets say you scroll the screen either down to expose more channels or right to look later in the timeline, that operations will need to destroy/dispose of all your buttons, figure out what new buttons it needs, create them all, size/position them and add them to your panel (particularly in the shows area where the length of show/block size will change for every chanel at any point in time). That operation of destroying buttons and creating buttons is clunky, its costs a lot of performance, will likely blink the UI at least once and won’t animate smoothly. Also the user interaction is local to each individual button, it would be very dificult to implement something like swipe style scrolling as each button has its own mouse events, etc..

    Ok I just thought of one more winforms technique, an aweful one but I know it’ll pop into your head! What if you made a panel with scrollbars that contained a massive array of buttons for all the available channels? This gives you smoother scrolling and reduces the destroy/create new button issues, right? Well that’ll be a performance nightmare too! Try putting 100-200 buttons in a scrolling panel and you’ll find out quickly this is a bad idea.

    Better Winforms Techniques

    If you must go the winforms route (because you can’t/won’t use DirectX) then you should implement the menu in a DirectX style way.

    1. Create a menu control class which inherits from a panel
    2. Override the drawing/painting (Control.OnPaintBackground and Control.OnPaint), override keyboard and mouse handlers, etc.
    3. Draw the menu inside the panel using the .Net Graphics class (provided in the OnPaint event PaintEventArgs)
    4. Handle all mouse/keyboard events and redraw your control when necessary (using Control.Invalidate() or Control.Refresh().

    You won’t get DirectX performance, but it’ll be way better than a large array of controls. (You’ll have the technique correct, but may not get the performance benefits of graphics processor acceleration that DirectX can harness.)

    • 0
    • Reply
    • Share
      Share
      • Share on Facebook
      • Share on Twitter
      • Share on LinkedIn
      • Share on WhatsApp
      • Report

Sidebar

Related Questions

I'm currently working on an ASP.Net WebForms application that allows a user to select
I am currently working on an application that will retrieve other users' locations based
I am currently working on a VB.NET desktop application that uses .mdb (Access) database
I'm currently working on an application that will generate actual .cs and .xaml code
Am currently working on an application that requires users to submit posts and comments
I'm currently working in an application that has to navigate a webpage and recollect
I am currently working on an application that has different permissions/users for the local
I'm currently working on an application that allows people to schedule Shows for an
I am currently working on an application that allows reverse geocoding using silverlight +
I am currently working on an application that uses a TableViewer in several places

Explore

  • Home
  • Add group
  • Groups page
  • Communities
  • Questions
    • New Questions
    • Trending Questions
    • Must read Questions
    • Hot Questions
  • Polls
  • Tags
  • Badges
  • Users
  • Help
  • SEARCH

Footer

© 2021 The Archive Base. All Rights Reserved
With Love by The Archive Base

Insert/edit link

Enter the destination URL

Or link to existing content

    No search term specified. Showing recent items. Search or use up and down arrow keys to select an item.