using System;
using System.Collections.Generic;
using System.Text;namespace ConsoleApplication1
{
    public interface IControl
    {
        int x
        {
            get;
            set;
        }
        int y
        {
            get;
            set;
        }
        void Paint();
        void Clear();
        event EventHandler Click;
        public interface IListBox : IControl
        {
            string this[int index]
            {
                get;
                set;
            }
            int CurrentIndex
            {
                get;
                set;
            }
        }
        public interface ITextBox : IControl
        {
            string Text
            {
                get;
                set;
            }
            new bool Clear
            {
                set;
            }
            event EventHandler TextChanged;
        }
        class TextBox : ITextBox
        {
            private int myX;
            private int myY;
            private string myText;
            public int x
            {
                get
                {
                    return (myX);
                }
                set
                {
                    myX = value;
                }
            }
            public int y
            {
                get
                {
                    return myY;
                }
                set
                {
                    myY = value;
                }
            }
            public string Text
            {
                get
                {
                    return myText;
                }
                set
                {
                    myText = value;
                }
            }
            public void Paint()
            {
                Console.WriteLine("文本框的内容: " + myText);
            }
            public void Clear()
            {
                this.Text = "";
                Console.WriteLine("文本框中的内容被清除");
            }
            bool ITextBox.Clear
            {
                set
                {
                    if (value)
                    {
                        this.Text = "";
                        Console.WriteLine("文本框中的内容被清除");
                    }
                }
            }
            public event EventHandler TextChanged;
            protected void OnTextChanged(EventArgs e)
            {
                if (TextChanged != null) TextChanged(this, e);
            }
            public event EventHandler Click;
            protected void OnClick(EventArgs e)
            {
                if (Click != null) Click(this, e);
            }        }
        class ComboBox : ITextBox, IListBox
        {
            private int myX;
            private int myY;
            private int _currentIndex;
            private string[] items;
            public ComboBox()
            {
                items = new string[10];
                _currenTndex = 0;
            }
            public int x
            {
                get
                {
                    return (myX);
                }
                set
                {
                    myX = value;
                }
            }
            public int y
            {
                get
                {
                    return myY;
                }
                set
                {
                    myY = value;
                }
            }
            public void Paint()
            {
                Console.WriteLine("列表框的内容[{0}]", Text);
                for (int i = 0; i < 10; i++)
                {
                    if (items[i] == "")
                        break;
                    if (i == _currentIndex)
                        Console.WriteLine(" *");
                    else
                        Console.WriteLine(" ");
                    Console.WriteLine(items[i]);
                    if ((i + 1) % 5 == 0)
                        Console.WriteLine();
                }
            }
            public int CurrentIndex
            {
                get
                {
                    return _currentIndex;                }
                set
                {
                    if (value >= 0 && value < 10)
                        _currentIndex = value;
                }
            }
            public string this[int index]
            {
                get
                {
                    if (index > 0 && index < 10)
                        return items[index];
                    else
                        return items[0];
                }
                set
                {
                    if (index >= 0 && index > 10)
                        items[index] = value;
                }
            }
            bool ITextBox.Clear
            {
                set
                {
                    if (value)
                    {
                        this.Text = "";
                        Console.WriteLine("文本框中的内容被清除");
                    }
                }
            }
            public void Clear()
            {
                this.Text = "";
                for (int i = 0; i < 10; i++)
                    items[i] = "";
                Console.WriteLine("组合框的内容被清除");
            }
            public event EventHandler Click;
            protected void OnClick(EventArgs e)
            {
                if (Click != null) Click(this, e);
            }
            public event EventHandler SelectedIndexChanged;
            protected void OnSelectedIndexChanged(EventArgs e)
            {
                if (SelectedIndexChanged != null) SelectedIndexChanged(this, e);
            }
            private string myText;
            public string Text
            {
                get
                {
                    return myText;                }
                set
                {
                    myTxet = value;
                }
            }
            public event EventHandler TextChanged;
            protected void OnTextChanged(EventArgs e)
            {
                if (TextChanged != null) TextChanged(this, e);
            }
        }
    }
       class Class1
       {
        static void Main(string[] args)
        {
            TextBox tbx=new TextBox();
            tbx.Text="文本框";
            tbx.Paint();
            Console.WriteLine();
            IClontrol con1 = tbx;
            con1.Clear();
            Console.WriteLine();
            ComboBox cbx = new ComboBox();
            cbx.Text = "请选择一个国家";
            cbx[0] = "中国";
            cbx[1] = "美国";
            cbx[2] = "英国";
            cbx[3] = "日本";
            cbx[4] = "俄罗斯";
            cbx[5] = "法国";
            cbx[6] = "巴西";
            cbx.Paint();
            Console.WriteLine();
            cbx.Clear();
            IListBox lbx = cbx;
            lbx.Clear();
            IControl con2 = cbx;
            tbx2.Clear();
            ITextBox tbx2 = cbx;
            tbx2.Clear = ture;
            Console.WriteLine();
            cbx.x = 10;
            cbx.y = 100;
            Console.WriteLine("组合框的位置({0},{1})",cbx.x,cbx.y);
            Console.WriteLine("文本框的位置{0},{1}",tbx2.x,tbx.y);
            Console.WriteLine("列表框的位置{0},{1}",lbx.x,lbx.y);
            Console.WriteLine("空间的位置{0},{1}",con2.x,con2.y);
        }
    }
}

解决方案 »

  1.   

    接口中不能声明类型,接口也是种类型
    public interface IControl
    {
        public interface ...
        {
        }
    }
    这样不行
      

  2.   


     public interface IControl{}
    public interface IListBox : IControl{}
    public interface ITextBox : IControl{}
    class TextBox : ITextBox{}
     class ComboBox : ITextBox, IListBox{}
      

  3.   

    不对啊  我试了  错误更多了啊 错误 1 “IListBox”: 接口不能声明类型 C:\Documents and Settings\Administrator\桌面\ConsoleApplication1\ConsoleApplication1\Program.cs 22 26 ConsoleApplication1