Click here to Skip to main content
11,717,570 members (81,198 online)
Click here to Skip to main content


, 23 May 2012 CPOL 278.8K 14K 153
Rate this:
Please Sign up or sign in to vote.
MCI wrapper class library for .NET developers
This is an old version of the currently published article.

Note: Revision 14 adds strong naming (signing) of the libraries (thanks Gernod (comments)). The example application now allows URLs to be added to the playlist.

Version 0.24, Copyright © 2012 PVS The Netherlands - Free to Use.


PVS.AVPlayer is an MCI Wrapper Class Library for .NET developers for easy but powerful playback of movies and/or music from within your application using Microsoft Windows built-in Media Control Interface (MCI), adding:

  • display formatting
  • multiple fullscreen modes
  • display overlays
  • true repeat
  • trackbar handling
  • and more
  • PVS.AVPlayer and the example application are compiled for .NET Framework 3.5. Other versions of the library (with exactly the same functionality) are available for .NET Framework 2.0, 3.0 and 4.0 from the link at the top of this article.
  • PVS.AVPlayer does not contain any viruses, spyware, advertisements or other malware, does not collect any information, changes nothing permanently to your computer and does not connect to the internet.

Please note that a VB.NET version of the article can be downloaded from the link at the top of this article.

Brief Instructions on How to Use PVS.AVPLAYER


  1. Adding PVS.AVPlayer to your Project
  2. Creating a Player
  3. Playing a Mediafile
  4. Player Display
  5. FullScreen Display
  6. So Far...
  7. Display Overlays
  8. Trackbars
  9. MediaEvents

1. Adding PVS.AVPlayer to your Project

Before you can use the PVS.AVPlayer library, you have to add a reference to it in your project.

First download "", if you haven't already done so, and unpack the library (DLL) anywhere you like on your harddisk (the .XML-file contains information for Visual Studio intellisense and is not needed with your finished application). Later on, Visual Studio will automatically copy the DLL to your project output folder (bin\Release) together with the executable (application) you have created.

Next, create a new project (you can also use an existing project of course) and add a reference to the library. You can do this by right-clicking on the project in solution explorer (or using the Project menu) and then select Add Reference: choose the Browse tab and locate and select "PVS.AVPlayer.dll". Now you're ready to use PVS.AVPlayer.

Finally, you might want to include the library namespace in your project files. It allows shorter names to be used. Type at the top of every project file that uses the library:

using PVS.AVPlayer;

If you don't want to get into the examples below, here's how you can play a movie inside a control (in this case 'panel1') on a .NET Windows Forms Application Form:

Player myPlayer = new Player();
myPlayer.Play(@"C:\MyMovie.mpg", panel1);

To stop playing and remove myPlayer, use:


2. Creating a Player

To play a mediafile (movie or music), you'll first have to create a 'Player'.

In your project, you can create as many Players as you like and also get rid of them again when you don't need them anymore. You can use them simultaneously, even to play the same mediafile.

Usually you would create one or more Players to be used throughout the project, so you declare them at the top of your project, outside any method but within a class (global). In the next example, the name of the Player is "myPlayer1" and a few lines of code are added to use one of the events raised by the Player.

A Player can inform you about changes in its playing state by sending you 'event messages'. You can 'catch' these events with your Player's EventHandler and act upon it. For instance, in case of a MediaEnded event (that tells you that a mediafile has finished playing) you may want to play another (next) mediafile (for more information, please see: 9. MediaEvents).

Adding a Player with EventHandler to a new Windows Forms Application project:

using PVS.AVPlayer;

namespace MyProject
    public partial class Form1 : Form
        Player myPlayer1;
        public Form1()
            myPlayer1 = new Player();
            myPlayer1.MediaEnded += 
		new Player.MediaEndedEventHandler(myPlayer1_MediaEnded);
        private void myPlayer1_MediaEnded(object sender, EventArgs e)
            // ... a mediafile has finished playing

Now all you have to do is tell the Player which mediafile (path and filename) to play and, if it's a movie, where to show it (player display).

3. Playing a MediaFile

To play a mediafile, you can use one of the Player's Play methods, but before you do so, you'll need the path and filename of the mediafile you want to play. Later on, we'll add an OpenFileDialog to select mediafiles, but for now the name of a mediafile is just added to the project (replace "C:\MyMovies\MyMovie.mpg" by the path and filename of one of your movies).

Also, if you're about to play a movie, you might want to tell the Player where to display the movie. If you don't, the Player will open a new window to display the movie.

To create a (tiny) mediaplayer, add a button ('button1') and a panel ('panel1') to your Form and add the PlayMedia method (see below) to the code (for a 'standard display look', you can set the background color of the panel to black). Double-click the button on your Form and add the PlayMedia instruction in the automatically created buttonclick handler. The project code now looks something like this:

using PVS.AVPlayer;

namespace MyProject
    public partial class Form1 : Form
        Player myPlayer1;
        string myMovie = @"C:\MyMovies\MyMovie.mpg";
        public Form1()
            myPlayer1 = new Player();
            myPlayer1.MediaEnded += 
		new Player.MediaEndedEventHandler(myPlayer1_MediaEnded);
        private void myPlayer1_MediaEnded(object sender, EventArgs e)
            // ... a mediafile has finished playing
        private void PlayMedia(string fileName)
            myPlayer1.Play(fileName, panel1);
            if (myPlayer1.LastError != 0)
        private void button1_Click(object sender, EventArgs e)

Press F5 (Start Debugging), click the button on your Form and see what happens.

4. Player Display

You can display the video of a mediafile using a Form or almost any other type of control, like a picturebox, label or panel. A panel might be the best choice because it has the least resources attached.

Any Form or suitable control will do, it doesn't have to be in the same class as the player. If you have a second Form in your project, you can display the video on that Form, controlling it from the first Form.

You can set or change the display of a player not only with the Play method (as above), but anytime you like, even when a movie is playing, with:

myPlayer1.Display = panel1;        	// panel1 as display
myPlayer1.Display = this;          	// the Form as display
myPlayer1.Display = Form2.panel1;  	// panel1 on another Form as display
myPlayer1.Display = null; 		// no display 

You only have to set the player's display once, the player will 'remember' which display to use (as with all other player settings).

If you don't attach a display to a player, the player will create a new window to display the video. You can have full control over this window (by using the myPlayer1.Display property), but it's probably not always what you want.

If you don't want to display video at all (but only hear the sound), you can disable the display of video with:

myPlayer1.VideoEnabled = false;

If you just want to play musicfiles, like mp3, you don't have to use a display or disable the display of video:



Video can be shown in different ways on the player's display by setting the player's displaymode. You can have the video fill the display (stretch), zoom it, use its original size, center it or set it to any size and position you like.

You can set the player's displaymode with (among others):

myPlayer1.DisplayMode = DisplayMode.Stretch;        // fill the display
myPlayer1.DisplayMode = Displaymode.ZoomAndCenter;  // as large as possible 
					// preserving size ratio (default setting)

You can set the position and size of the video at will by setting myPlayer1.VideoBounds. When you do so, the displaymode is set to DisplayMode.Manual. The position is relative to the top-left of the player's display (panel1). With the manual displaymode, the player does not resize the movie (as with most of the other displaymodes) when the size of the player's display changes.

// left = -10, top = -20, width = 1000, height = 750
myPlayer1.VideoBounds = new Rectangle(-10, -20, 1000, 750);	

// same size as myPlayer1 display
myPlayer1.VideoBounds = myPlayer1.Display.DisplayRectangle;	

Similar to this option are the options to scroll the position of the video (myPlayer1.VideoMove) and to zoom in or out (myPlayer1.VideoZoom). These options also allow the use of two or more movies in one display (with multiple players using the same display) for instance by scrolling them in and out of view.

for (int i = 0; i < myPlayer1.Display.Height; i++)
    myPlayer1.VideoMove(0, 1);         // scroll movie 1 pixel down
    System.Threading.Thread.Sleep(2);  // slow down a bit

Note: A movie is displayed (sort of) on top of a display control (panel1). If you click on the part of the control where the movie is being displayed, the control (panel1) does not 'receive' the mouseclick (exception: right-click for contextmenu). The same goes for most other events. Also any control inside the display control is overwritten (not visible) by the movie. You can display a control on top of a video if its parent control is not the player's display (panel1) or by using a PVS.AVPlayer display overlay, which is more convenient and has more options (like transparency and opacity).

5. FullScreen Display

PVS.AVPlayer has built-in options to display a movie using the entire screen, hiding the desktop, taskbar and anything else. However, you still can have other windows (and the Taskbar) to be displayed in front of your fullscreen application.

You can not only show a Form fullscreen but also a player's display, meaning that you can show a player's display using the entire screen even if it's smaller than the Form it's on (while the player's display still remains part of the Form).

You can switch to fullscreen display with:

myPlayer1.FullScreen = true;

Before (or after) you do so, you can use the FullScreenMode option to select what will be shown fullscreen:

  1. FullScreenMode.Form - shows the Form (the player's display is on) fullscreen.
  2. FullScreenMode.Parent - shows the parent control (the player's display is in) fullscreen.
  3. FullScreenMode.Display - shows the player display fullscreen (default setting).
myPlayer1.FullScreenMode = FullScreenMode.Form;

The player's display or its parent can't be inside any other control than the Form itself if you want to use fullscreen modes 2 or 3.

Putting It Together

Before adding the fullscreen option to the example code, we must have some way to return to normal display, otherwise we'll be stuck in fullscreen display. The best way perhaps would be to add a contextmenu to panel1 or even an 'always on top' controller Form, but for now we're just going to 'catch' keypress events for the Form, the player's display is on by setting the Form's KeyPreview property to 'true' and add a Form's keyeventhandler to check if the 'Space' key was pressed.

Also a few other things have been added to the code:

  • Clicking button1 now displays an OpenFileDialog to select one or more mediafiles
  • Some more declarations at the top (string array with filenames and 'button1 on top' original position storage)
  • More player initialization (display and displaymode are set before using the play method)
  • The player's MediaEnded event now plays 'next' mediafiles added PlayNextMedia method
  • Show a control (button1) on top of a movie in fullscreen mode (without using a display overlay - see 'Note' above).
using PVS.AVPlayer;

namespace MyProject
    public partial class Form1 : Form
        Player myPlayer1;
        //Form2 myOverlay1;  // please see below: 7. Display Overlays
        OpenFileDialog myOpenFileDialog1;
        string[] myMovies;
        int movieToPlay = 0;
        Point buttonLocation;
        public Form1()
            myPlayer1 = new Player();
            myPlayer1.MediaEnded += 
		new Player.MediaEndedEventHandler(myPlayer1_MediaEnded);
            myPlayer1.Display = panel1;
            myPlayer1.DisplayMode = DisplayMode.Stretch;
            //myOverlay1 = new Form2();  // please see below: 7. Display Overlays
            //myPlayer1.Overlay = myOverlay1;
            myOpenFileDialog1 = new OpenFileDialog();
            myOpenFileDialog1.Multiselect = true;
            this.KeyPreview = true;
            this.KeyDown += new KeyEventHandler(Form1_KeyDown);
        private void myPlayer1_MediaEnded(object sender, EventArgs e)
        private void PlayMedia(string fileName)
            if (myPlayer1.LastError != 0) 
                MessageBox.Show(fileName + "\r\n\r\n" + myPlayer1.LastErrorString);
                if (myMovies.Length > 1) PlayNextMedia();
        private void button1_Click(object sender, EventArgs e)
            if (myOpenFileDialog1.ShowDialog(this) == DialogResult.OK)
                myMovies = myOpenFileDialog1.FileNames;
                movieToPlay = 0;
        private void PlayNextMedia()
            if (++movieToPlay >= myMovies.Length) movieToPlay = 0;
        private void Form1_KeyDown(object sender, KeyEventArgs e)
            if (e.KeyCode == Keys.Space)
                e.Handled = true;
        private void ToggleFullScreen()
            if (myPlayer1.FullScreen)
                myPlayer1.FullScreen = false;
                button1.Location = buttonLocation;
                buttonLocation = button1.Location;
                myPlayer1.FullScreen = true;
                button1.Location = new Point
				(myPlayer1.Display.Width - button1.Width - 24, 24);

6. So Far...

One Form, one button and one panel. That doesn't even come close to being a real mediaplayer (there's not even a 'Stop' button). Still, it already has everything in it to play mediafiles, and more.

The example code was kept short, just to give an idea how to start with PVS.AVPlayer. The code could do with some rewriting for a real application but the building blocks of it can be used as a starting point. You can have only a few lines of code in your application to play a movie or even create your own home mediaplayer.

Still, it's Windows Media Control Interface (MCI) and your application that do all the real work. PVS.AVPlayer just passes on your instructions to MCI and then continues doing nothing until you use another instruction, resize the player's display or when a MediaEvent occurs.

7. Display Overlays

With a PVS.AVPlayer Display Overlay, you can very easily display something (like text, pictures and movies) on top of a movie.

A PVS.AVPlayer Display Overlay is a Form, just like the ones you use in your .NET Windows Forms Application projects. PVS.AVPlayer just displays it on top of a player's display.

To see what that looks like, let's add a display overlay to the example code:

First, create a new Form (in this example 'Form2') in your Project (menu Project: Add Windows Form...) and drag a control from the Toolbox, let's use a Label, on it. We now have a display overlay.

You may want to make some adjustments to the label, like changing the text, increasing the fontsize and changing the foregroundcolor, but for now leave its backgroundcolor the same as the Form's backgroundcolor. Setting the overlay's (Form2) opacity less than 100% may also look nice.

Next (and last), all we have to do is to attach the overlay (Form2) to the player:

Form2 myOverlay1 = new Form2();  // create an instance of Form2
myPlayer1.Overlay = myOverlay1;  // and attach it to the player

You can insert these lines in the example's Form1() method (see remarks in the example project code above) or anywhere you like (but of course only after a player has been created), press F5, play a movie and see what it looks like.

Note: You might want to store the overlay reference in a global variable (as with 'myPlayer1') in case you want to dispose (or reuse) the overlay:

myPlayer1.Overlay = null;  // remove the overlay from the player
myOverlay1.Dispose();      // dispose the overlay (Form2)

Using Display Overlays

To make a display overlay transparent, PVS.AVPlayer sets the Form's TransparencyKey property to the backgroundcolor of the Form. If you don't want the background to be transparent but want to use one of the foregroundcolors for transparency (for 'see through' shapes) you can set the Form's TransparencyKey yourself (if it's set, PVS.AVPlayer doesn't change it).

To avoid unwanted (partially) transparency of items on a display overlay, use a background (or transparencykey) color that is usually not or very rarely used (like maybe 'RosyBrown'). To avoid visible 'edges' around text on a transparent overlay, use a backgroundcolor for the Form that is close to the color of the text. Setting the Form's opacity a little lower than 100% 'softens' text and other items on a transparent display overlay.

An overlay can be displayed using the size of the movie or the size of the player's display. Use the OverlayMode property to set the overlay size.

Usually an overlay is shown only when a movie is being played. If you want it to be always visible, you can set the OverlayHold property to 'true'.

If you want to use an overlay for textinput or have selectable controls (like buttons) on it, you can set the property OverlayCanFocus to 'true'.

If the Overlay has to be resizable, then you can have the controls and text on the overlay to be resizable also. For text this might work fairly well, but resizing controls may not always give the desired result (as with the other options you can switch this option on and off also when the Overlay is displayed). Use the property OverlayAutoScale to resize text and controls. If you set the MinimumSize property of a control, the text inside the control will not be resized.

To regularly change items (animation) on a display overlay (e.g. the text of a Label) or executing code in the overlay (Form2) class, you can use a timer (the overlay is usually not the Form that has focus).

If the display overlay Form has no contextmenu, it will 'inherit' the contextmenu of the player's display (panel1; if any).

8. Trackbars

You may want to use a trackbar type control with your player to show and change the playback position of a mediafile. That's not a difficult task, although there's more to it than just might seem at first sight. That's why PVS.AVPlayer can handle this kind of control for you.

Just add a TrackBar control to your Form (or Display Overlay) and tell the player to handle it with:

myPlayer1.PositionSlider = trackBar1;

By setting the PositionSliderMode option, you can have the trackbar show the position between the beginning and end of a mediafile (PositionSliderMode.Track) or between the player's media Start- and EndPosition (PositionSliderMode.Progress).

On slower systems, you might want to set myPlayer1.PositionSliderLiveUpdate = false.

Similar, you can also let the player handle an audio volume slider (myPlayer1.AudioVolumeSlider), an audio balance slider (myPlayer1.AudioBalanceSlider), a playback speed slider (myPlayer1.SpeedSlider) and/or a playback shuttle slider (myPlayer1.ShuttleSlider):

myPlayer1.AudioVolumeSlider = trackBar2;


  • When you use a player's PositionSlider, a timer will be used when a mediafile is playing.
  • With a shuttle slider, you can repeatedly step fore- or backwards 'frames' with some movie types only.
  • With audio (music) only: the playback position returned by MCI with other than normal playback speed is not correct.

9. MediaEvents

The MediaEvents raised by PVS.AVPlayer allow your application to react to certain changes in the state of your player, like when a mediafile has finished playing. You don't have to use any of the events, and if you don't, PVS.AVPlayer will ignore them too and not send any event messages to your application.

The MediaPositionChanged event is a little bit different from the other ones because it gets sent very often when a mediafile is playing and it involves a timer. It informs you about a player's playback position change when a mediafile is playing and you could use it to update some position indicators on the screen, like a slider (if you're not using the player's positionslider) and/or some 'counters':

private void myPlayer1_MediaPositionChanged(Object sender, EventArgs e)
    myTrackBar1.Value = myPlayer1.Position.TotalMilliseconds;

    label1.Text = myPlayer1.GetMediaLength(MediaLength.FromStartPosition).ToString();
    label2.Text = myPlayer1.GetMediaLength(MediaLength.ToEndPosition).ToString();

By using myPlayer1.TimerInterval, you can change the frequency by which the mediapositionchanged events are sent (default 200 milliseconds).


This article, along with any associated source code and files, is licensed under The Code Project Open License (CPOL)


About the Author

Peter Vegter
United States United States
No Biography provided

You may also be interested in...

Comments and Discussions

Discussions posted for the Published version of this article. Posting a message here will take you to the publicly available article in order to continue your conversation in public.
Questionit's weird, there's no video just the sound when playing the movie. Pin
avensun1-May-15 22:13
memberavensun1-May-15 22:13 
AnswerRe: it's weird, there's no video just the sound when playing the movie. Pin
Peter Vegter1-May-15 22:35
memberPeter Vegter1-May-15 22:35 
GeneralRe: it's weird, there's no video just the sound when playing the movie. Pin
avensun2-May-15 3:10
memberavensun2-May-15 3:10 
GeneralRe: it's weird, there's no video just the sound when playing the movie. Pin
Peter Vegter2-May-15 5:21
memberPeter Vegter2-May-15 5:21 
GeneralRe: it's weird, there's no video just the sound when playing the movie. Pin
avensun2-May-15 6:41
memberavensun2-May-15 6:41 
GeneralMy Vote Pin
Santhakumar Munuswamy @ Chennai1-May-15 20:34
memberSanthakumar Munuswamy @ Chennai1-May-15 20:34 
GeneralRe: My Vote Pin
Peter Vegter1-May-15 21:11
memberPeter Vegter1-May-15 21:11 
GeneralMy vote of 5 Pin
ThanhTrungDo19-Apr-15 17:48
professionalThanhTrungDo19-Apr-15 17:48 
GeneralRe: My vote of 5 Pin
Peter Vegter19-Apr-15 23:33
memberPeter Vegter19-Apr-15 23:33 
Questionreverse playing Pin
Victor Castillo14-Apr-15 6:52
memberVictor Castillo14-Apr-15 6:52 
AnswerRe: reverse playing Pin
Peter Vegter14-Apr-15 8:03
memberPeter Vegter14-Apr-15 8:03 
GeneralRe: reverse playing Pin
Victor Castillo14-Apr-15 8:16
memberVictor Castillo14-Apr-15 8:16 
QuestionMouse Events not firing in Form Pin
SLRBatman3-Feb-15 9:20
memberSLRBatman3-Feb-15 9:20 
AnswerRe: Mouse Events not firing in Form Pin
Peter Vegter3-Feb-15 10:18
memberPeter Vegter3-Feb-15 10:18 
GeneralRe: Mouse Events not firing in Form Pin
SLRBatman24-Feb-15 8:20
memberSLRBatman24-Feb-15 8:20 
GeneralRe: Mouse Events not firing in Form Pin
Peter Vegter24-Feb-15 9:56
memberPeter Vegter24-Feb-15 9:56 
GeneralRe: Mouse Events not firing in Form Pin
SLRBatman3-Mar-15 7:33
memberSLRBatman3-Mar-15 7:33 
GeneralRe: Mouse Events not firing in Form Pin
Peter Vegter3-Mar-15 9:10
memberPeter Vegter3-Mar-15 9:10 
GeneralRe: Mouse Events not firing in Form Pin
SLRBatman4-Mar-15 1:09
memberSLRBatman4-Mar-15 1:09 
GeneralAdditional Problem Solving Pin
Peter Vegter20-Jan-15 1:19
memberPeter Vegter20-Jan-15 1:19 
GeneralYour SafeNativeMethods class is not accessible in the distribution package Pin
Member 112130816-Nov-14 10:24
memberMember 112130816-Nov-14 10:24 
GeneralRe: Your SafeNativeMethods class is not accessible in the distribution package Pin
Peter Vegter6-Nov-14 11:29
memberPeter Vegter6-Nov-14 11:29 
Questionbuild under x86 can not play mp4 file Pin
Hong Thai28-Oct-14 17:03
memberHong Thai28-Oct-14 17:03 
AnswerRe: build under x86 can not play mp4 file Pin
Peter Vegter28-Oct-14 18:33
memberPeter Vegter28-Oct-14 18:33 
QuestionYou are literally awesome!! Pin
Codacity3-Sep-14 13:38
memberCodacity3-Sep-14 13:38 
AnswerRe: You are literally awesome!! Pin
Peter Vegter3-Sep-14 14:15
memberPeter Vegter3-Sep-14 14:15 
GeneralRe: You are literally awesome!! Pin
Codacity14-Sep-14 4:49
memberCodacity14-Sep-14 4:49 
GeneralRe: You are literally awesome!! Pin
Peter Vegter14-Sep-14 6:21
memberPeter Vegter14-Sep-14 6:21 
Questionjump to specific time in video Pin
Hong Thai24-Jul-14 5:29
memberHong Thai24-Jul-14 5:29 
AnswerRe: jump to specific time in video Pin
Peter Vegter24-Jul-14 6:41
memberPeter Vegter24-Jul-14 6:41 
QuestionFaster Seeking Pin
topazas10-May-14 12:57
membertopazas10-May-14 12:57 
AnswerRe: Faster Seeking Pin
Peter Vegter10-May-14 14:11
memberPeter Vegter10-May-14 14:11 
GeneralRe: Faster Seeking Pin
topazas11-May-14 1:08
membertopazas11-May-14 1:08 
GeneralRe: Faster Seeking Pin
Peter Vegter11-May-14 3:27
memberPeter Vegter11-May-14 3:27 
GeneralRe: Faster Seeking Pin
topazas11-May-14 5:21
membertopazas11-May-14 5:21 
QuestionExcellent work Pin
nebojsa_j23-Apr-14 7:31
membernebojsa_j23-Apr-14 7:31 
AnswerRe: Excellent work Pin
Peter Vegter23-Apr-14 9:53
memberPeter Vegter23-Apr-14 9:53 
QuestionNice Component... Pin
Member 1075944018-Apr-14 21:41
memberMember 1075944018-Apr-14 21:41 
AnswerRe: Nice Component... Pin
Peter Vegter18-Apr-14 23:16
memberPeter Vegter18-Apr-14 23:16 
Questionplay a http url? Pin
benny8566943-Apr-14 21:36
memberbenny8566943-Apr-14 21:36 
AnswerRe: play a http url? Pin
Peter Vegter4-Apr-14 0:42
memberPeter Vegter4-Apr-14 0:42 
AnswerRe: play a http url? Pin
Peter Vegter4-Apr-14 8:54
memberPeter Vegter4-Apr-14 8:54 
QuestionGreat article ! Pin
Volynsky Alex3-Apr-14 12:21
professionalVolynsky Alex3-Apr-14 12:21 
AnswerRe: Great article ! Pin
Peter Vegter3-Apr-14 15:39
memberPeter Vegter3-Apr-14 15:39 
GeneralRe: Great article ! Pin
Volynsky Alex3-Apr-14 20:10
professionalVolynsky Alex3-Apr-14 20:10 
QuestionExcellent work .. congratulations Pin
caoc730-Aug-13 15:42
membercaoc730-Aug-13 15:42 
AnswerRe: Excellent work .. congratulations Pin
Peter Vegter30-Aug-13 21:35
memberPeter Vegter30-Aug-13 21:35 
GeneralControl myPlayer1.ShuttleSlider Pin
caoc731-Aug-13 3:42
membercaoc731-Aug-13 3:42 
GeneralRe: Control myPlayer1.ShuttleSlider Pin
Peter Vegter31-Aug-13 9:15
memberPeter Vegter31-Aug-13 9:15 
GeneralThank you very much Pin
caoc73-Sep-13 4:48
membercaoc73-Sep-13 4:48 

General General    News News    Suggestion Suggestion    Question Question    Bug Bug    Answer Answer    Joke Joke    Rant Rant    Admin Admin   

Use Ctrl+Left/Right to switch messages, Ctrl+Up/Down to switch threads, Ctrl+Shift+Left/Right to switch pages.

| Advertise | Privacy | Terms of Use | Mobile
Web02 | 2.8.150901.1 | Last Updated 23 May 2012
Article Copyright 2010 by Peter Vegter
Everything else Copyright © CodeProject, 1999-2015
Layout: fixed | fluid