代码改变世界

自写的 c# 锚点,前端显示 读书 记事本(一)

2009-12-26 22:52  撞破南墙  阅读(1679)  评论(3编辑  收藏  举报

              一般看视频教程。一边做做笔记是很惬意的事。。但是手上的 xp 自带的 记事本 一直用着不爽。我想起Java夜未眠.  那家伙说的,不爽的软件自己 开发一个。然后又终于 搞定了 手上的网站。学学WINFORM的开发。

               高手可以闪了。。。。

====================================================================

解决方案

=================================================================

我觉得可以分为几块

1. 简单的 控件 拖拽和 调用。

2. 文件存储和数值(过滤)读取。

3. 麻烦点的锚点和前端显示功能。

===============================     1   ==================================

 

 顾名思义。很多控件 就算是 新手 也能很快上手。

 初看 字体 那些 对话框 是很麻烦 ,得弄很久。。谁知到 查了下其他的资料。

个个都调用现成的组件。

哪一类的对话框都是这样的格式。

打开一个对话框, 如果OK的 话,就取值赋值回来。

字体设置对话框
 //字体
        private void fontTypeToolStripMenuItem_Click(object sender, EventArgs e)
        {
            
if (fontDialog.ShowDialog() == DialogResult.OK)
            {
                tB_NoteContent2.Font 
= fontDialog.Font;
            }

 

 

 ===========================   2   =================================

    这里使用的是 StreamReader  一行一行的读。

Environment.NewLine 是换行的意思 。

取出来之后可以 直接赋值给 textbox。

当然你也可以使用 RichTextBox 。我是做完之后 才发现的。。。汗

RichTextBox 提供了更丰富的功能,想知道更多。。谷歌吧

 

读文章
     #region  ============读文章===================
            
using (StreamReader streamReader = new StreamReader(_openFileName))
            {
                
while ((lineContent = streamReader.ReadLine()) != null)
                {
                    _noteContent 
+= (lineContent + Environment.NewLine); //it means \r\n
                }
            }


            tB_NoteContent2.Text 
= _noteContent;
            
#endregion

 

 

 

 

检测和把取到的值过滤
  if (!File.Exists(_treefilename))
            {
                MessageBox.Show(
"不存在");
                PreParedTreView(); 
//add titile
                return;
            }
            
//==============================
            using (StreamReader streamReaderkf = new StreamReader(_treefilename))
            {
                
string x; string y; int F1; int F2; int F3; int F4;
                
while ((lineContent = streamReaderkf.ReadLine()) != null)
                {
                    atree 
= new Tree<int[]>();
                    atree.Content 
= new int[] { 00 };
                    tB_Tree.Text 
+= lineContent + Environment.NewLine;
                    F1 
= lineContent.IndexOf("|");
                    F2 
= lineContent.LastIndexOf("(");
                    F3 
= lineContent.LastIndexOf(",");
                    F4 
= lineContent.LastIndexOf(")");
                    atree.Text 
= lineContent.Substring(F1 + 2, F2 - 2);
                    x 
= lineContent.Substring(F2 + 1, F3 - F2 - 1);
                    y 
= lineContent.Substring(F3 + 1, F4 - F3 - 1);
                    atree.Content[
0= Convert.ToInt32(x);
                    atree.Content[
1= Convert.ToInt32(y);
                    tree.AddChildTree(atree);
                    MenuTree.Nodes.Add(atree.Text);
                }
               
            }

 

 

没有数据库而是采用 类似 codebehind 的 方法去做的。。对于值的过滤可能还存在问题。

但是只有自己不故意起怪名,。。还是能用的。

 

晕。。。基地的的大叔又要 关门了。明天再把其他的写完吧