static void Main(string[] args)
        {
            Triangle t = new Triangle();

            Console.WriteLine(t.GetNumberOfSides());
            t.Print();

            IDrawable id = (IDrawable)t;

            id.Draw();

            IPrintable ip = (IPrintable)t;

            ip.Draw();

            Console.ReadKey();
        }
Beispiel #2
0
        private static void ExploreMultipleInheritanceWithInterfaces()
        {
            Square s = new Square();

            Console.WriteLine("Square has {0} sides.", s.GetNumberOfSides());
            s.Draw();

            Console.WriteLine("");

            Triangle t = new Triangle();

            Console.WriteLine("Triangle has {0} sides.", t.GetNumberOfSides());

            IPrintable tp = (IPrintable)t;

            tp.Draw();                      // Call the explicitly defined IPrintable.Draw()
            IDrawable td = (IDrawable)t;

            td.Draw();                      // Call the explicitly defined IDrawable.Draw()
        }
Beispiel #3
0
        static void Main(string[] args)
        {
            Console.WriteLine("***** MI Interface Hierarchy *****\n");
            Square     mySquare = new Square();
            IPrintable t        = (IPrintable)mySquare;

            t.Draw();
            IDrawable p = (IDrawable)mySquare;

            p.Draw();
            mySquare.Print();
            Console.WriteLine(mySquare.GetNumberOfSides());
            Console.WriteLine("\n");

            Rectangle Rec = new Rectangle();

            Rec.GetNumberOfSides();
            Rec.Draw();
            Rec.Print();
            Console.WriteLine(Rec.GetNumberOfSides());
            Console.ReadLine();
        }
Beispiel #4
0
        /// <summary>
        /// 打印各组件
        /// </summary>
        /// <param name="g">打印GDI接口</param>
        private void PrintControls(Graphics g)
        {
            float topOffSet = 0;

            if (_pageFromHeight)
            {
                topOffSet = -_pageIndex * _pagePrintHeight;
            }
            float leftOffSet = 0;
            float topOffSet1 = 0;

            float          top      = 0;
            List <Control> controls = _baseDoc.ReportViewer.GetControls <Control>();

            foreach (Control control in controls)
            {
                if (control is IPrintable)
                {
                    PointF point = GetControlLocation(control);
                    if (point.X != 1.2345f && point.Y != 1.2345f && (!_pageFromHeight || (point.Y > _pageIndex * _pagePrintHeight && point.Y < (_pageIndex + 1) * _pagePrintHeight)))
                    {
                        IPrintable printable = (IPrintable)control;
                        if (!printable.NoPrint)
                        {
                            if (point.Y > top)
                            {
                                printable.Draw(g, leftOffSet + point.X, topOffSet + topOffSet1 + point.Y);
                            }
                            else
                            {
                                printable.Draw(g, leftOffSet + point.X, topOffSet + point.Y);
                            }
                        }
                    }
                }
                else if (control is Panel && (control as Panel).BorderStyle == BorderStyle.FixedSingle)
                {
                    PointF point = GetControlLocation(control);
                    if (point.X != 1.2345f && point.Y != 1.2345f && (!_pageFromHeight || (point.Y > _pageIndex * _pagePrintHeight && point.Y < (_pageIndex + 1) * _pagePrintHeight)))
                    //if (point.X != 1.2345f && point.Y != 1.2345f)
                    {
                        g.DrawRectangle(new Pen(control.ForeColor), new Rectangle((int)(leftOffSet + point.X), (int)(topOffSet + topOffSet1 + point.Y), control.Width - 1, control.Height));
                    }
                }
            }
            foreach (Control control in controls)
            {
                if (control is IPrintable && control.Parent.Name.ToLower() == "panelfuji")
                {
                    PointF point = GetControlLocation(control);
                    if (point.X != 1.2345f && point.Y != 1.2345f)
                    {
                        IPrintable printable = (IPrintable)control;
                        if (!printable.NoPrint)
                        {
                            if (point.Y > top)
                            {
                                printable.Draw(g, leftOffSet + point.X, topOffSet + topOffSet1 + point.Y);
                            }
                            else
                            {
                                printable.Draw(g, leftOffSet + point.X, topOffSet + point.Y);
                            }
                        }
                    }
                }
            }
        }