I want to show my C# code snippet on the presentation slides using beamer.
Because the code is long, I set the frame to be breakable using the frame option allowframebreaks. The code now can be shown in several frames. Unfortunately, the tab alignment in the original source no longer be preserved.

\documentclass[dvipsnames,cmyk]{beamer}
\usepackage{listings}
\lstset%
{%
language=[Sharp]C,
backgroundcolor=\color{Black},
basicstyle=\color{White}\tiny\ttfamily,
keywordstyle=\color{Orange},
identifierstyle=\color{Cyan},
stringstyle=\color{Red},
commentstyle=\color{Green},
breaklines=true,
breakatwhitespace=true,
tabsize=10,
showstringspaces=false%
}
\begin{document}
\begin{frame}[allowframebreaks,fragile]{MyListing}
\begin{lstlisting}
using System;
publid delegate void Foo(object o);
public class Program: object
{
public static void Main(string[] args)
{
Console.WriteLine("Hello World");//This is a comment.
/*This is a comment too.*/
}
public static void PSTricks(this object)
{
Say("I Love PSTricks!");
Say("I Love PSTricks!");
Say("I Love PSTricks!");
Say("I Love PSTricks!");
}
public static void LaTeX(this object)
{
Say("I Love LaTeX too!");
Say("I Love LaTeX too!");
Say("I Love LaTeX too!");
Say("I Love LaTeX too!");
}
public void Say(System.String message)
{
System.Text.StringBuilder sb=new System.Text.StringBuilder();
sb.Append(messange);
Console.WriteLine(sb);
}
}
\end{lstlisting}
\end{frame}
\end{document}
Edit 1:
This bad behavior only happens for the inline inclusion.
The inclusion from an external file works well as shown in the following figure.

\setlength\paperheight{2cm}. Moreover, please don't post overly long screen shots! A few lines are quite sufficient, and even better: Then it is easier to compare the screenshots. – Hendrik Vogt Jan 06 '11 at 10:06