最近老大让我写一代码编辑器模块,让我自己定义这个模块的对外接口以及把模块再划分成更小的模块.以前基本是别人定义好了,我只要实现就可以,但现在要我来做,真的是片空白。在此想请各问的给出一些指导。老大还说什么低耦合,强内聚。

解决方案 »

  1.   

    模块接口,可以考虑使用web services
      

  2.   

    是初学者啊,绝对的初学!天天活很杂,基本什么都尝试过,裁WinCE,驱动程序,网络通讯,编写PLC,反正都摸过,就是只知道皮毛,所以现在做起是片空白了。比较痛苦
      

  3.   

    编辑器这块,应该是有开源的玩意在codeplex上有很多这类型的开源项目http://www.codeplex.com/site/search?query=code%20editor&ac=1
      

  4.   

    public partial class TextEditorPanel : UserControl
        {  
            public TextEditorPanel()
            {
                InitializeComponent();
            }
    #region 对外方法        /// <summary>
            /// 打开文件
            /// </summary>
            /// <param name="s">文件名</param>
            /// <returns></returns>
            public int OpenFile(string s)
            {
                return 0;
            }
            /// <summary>
            /// 关闭文件
            /// </summary>
            /// <returns></returns>
            public int CloseFile()
            {
                return 0;
            }
            /// <summary>
            /// 保存文件
            /// </summary>
            public void SaveFile()
            {        }
            /// <summary>
            /// 另存文件
            /// </summary>
            /// <param name="s">保存的文件名</param>
            /// <returns></returns>
            public int SaveFileAs(string s)
            {            return 0;
            }
            /// <summary>
            /// 向前查找字符串
            /// </summary>
            /// <param name="s">被查找的字符串</param>
            /// <returns>找到字符串,返回字符串所在行号</returns>
            public int  FindNext(string s)
            {
                return -1;
            }
            /// <summary>
            /// 向前查找字符串
            /// </summary>
            /// <param name="s"></param>
            /// <returns>找到字符串返回字符串所在行号</returns>
            public int FindPre(string s)
            {            return -1;
            }
            /// <summary>
            /// 跳转到指定行
            /// </summary>
            /// <param name="lineIndex">行号</param>
            /// <returns>跳转成功返回0,行号不存在返回-1</returns>
            public int GoToLine(int lineIndex)
            {            return 0;
            }
            /// <summary>
            /// 复制选中行
            /// </summary>
            /// <returns>复制成功返回0</returns>
            public int  CopySelectedLines()
            {
                return 0;
            }
            /// <summary>
            /// 粘贴选中行
            /// </summary>
            /// <param name="desLineNum">粘贴的目标行号</param>
            /// <returns>粘贴成功返回0</returns>
            public int  PasteSelectedLines(int desLineNum)
            {
                return 0;
            }
            /// <summary>
            /// 删除选中行
            /// </summary>
            /// <returns>删除成功返回true</returns>
            public bool DeleteSelectedLines()
            {
                return true;
            }
            /// <summary>
            /// 向后替换文本中的字符串
            /// </summary>
            /// <param name="sourceStr">替换的源字符串</param>
            /// <param name="targetStr">替换的目标字符串</param>
            /// <returns>替换成功返回ture</returns>
            public bool ReplaceNext(string sourceStr,string targetStr)
            {
                return true;
            }
            /// <summary>
            /// 向前替换文本中的字符串
            /// </summary>
            /// <param name="sourceStr">替换的源字符串</param>
            /// <param name="targetStr">替换的目标字符串</param>
            /// <returns>替换成功返回ture</returns>
            public bool ReplacePre(string sourceStr, string targetStr)
            {
                return true;
            }
            /// <summary>
            /// 获取当前行的文本
            /// </summary>
            /// <param name="str">当前行的字符串</param>
            /// <returns>当前行在文件的中的行号</returns>
            public int GetCurrentLine(ref string str)
            {
                return 0;
            }
    #endregion
    #region 属性        /// <summary>
            /// 设置编辑器的位置
            /// </summary>
            private Point panelLoaction;
            public Point PanelLocation
            {            set
                {
                    panelLoaction = value;
                }
                get
                {
                    return panelLoaction;
                }
            }
            /// <summary>
            /// 是否选中编辑器中的当前行
            /// </summary>
            private bool lineSelected;
            public bool LinSelected
            {
                set
                {
                    lineSelected = true;
                }
                get
                {
                    return lineSelected;
                }
            }
            public struct PanleSize_t
            {
               public uint width;
               public uint heigth;
            }
            /// <summary>
            /// 设置编辑器尺寸
            /// </summary>
            private PanleSize_t panelSize;
            public PanleSize_t PanelSize
            {
                set
                {
                    panelSize = value;
                }
                get
                {
                    return panelSize;
                }
            }        /// <summary>
            /// 或取编辑器中的文件是否发生过编辑行为
            /// </summary>
            private bool modified;
            public bool Modified
            {            set
                {
                    modified = value;
                }
                get
                {                return modified;
                }
            }
            /// <summary>
            /// 是否允许编辑文件
            /// </summary>
            private bool editingValid;
            public bool EditingValid
            {
                get
                {
                    return editingValid;
                }
            }
            public enum EditingModels { Watch, WordModify, LineModify };
            /// <summary>
            /// 设置编辑模式
            /// </summary>
            private EditingModels editingModel;
            public EditingModels EditingModel
            {
                set
                {
                    editingModel = value;
                }
                get
                {
                    return editingModel;
                }
            }
            /// <summary>
            /// 设置行标记的“行标记”可见性
            /// </summary>
            private bool lineMarkVisble;
            public bool LineMarkVisble
            {
                set
                {
                    lineMarkVisble = true;
                }
                get
                {
                    return lineMarkVisble;
                }
            }
            /// <summary>
            /// 设置编辑器“行标记”的颜色
            /// </summary>
            private Color lineMarkColor;
            public Color LineMarkColor
            {
                set
                {
                    lineMarkColor = value;
                }
                get
                {
                    return lineMarkColor;
                }
            }
            /// <summary>
            /// 获取当前文件的总行数
            /// </summary>
            private int  lineCount=0;
            public int LineCount
            {
                get
                {
                    return lineCount;
                }
            }#endregion
    把自己定义的一部分接口给贴出来,烦请各位指导