久久久久久久999_99精品久久精品一区二区爱城_成人欧美一区二区三区在线播放_国产精品日本一区二区不卡视频_国产午夜视频_欧美精品在线观看免费

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 2956|回復: 0
收起左側(cè)

用C語言的風格寫一個C#控件使用例子

[復制鏈接]
ID:32490 發(fā)表于 2019-3-15 23:28 | 顯示全部樓層 |閱讀模式

有同事看我打開了VS,說能不能幫忙寫個例子,他也要學,入門大家都知道是簡單的,語言都是相通的嘛。

好了,下面簡單說下:
using System;
using System.IO;
using System.Linq;
using System.Drawing;
using System.Windows.Forms;//引用WINDOWS FRAMWORK 庫文件
這些都是系統(tǒng)自帶的庫,好比C語言自帶的庫。
也可以using其他外來的庫,好比C語言的.lib或.a之類。

然后C#中的枚舉:
    //枚舉實列,
    public enum BtnNameType
    {
        按鈕A,//
        按鈕B,
        按鈕C,
    }
這個和C語言的也很類似,今天寫的例子有一個點就是程序可擴展性,就是以這個枚舉來擴展舉例
    public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();
        }
  }
這個是窗體的類,繼承于FORM基類,是剛才System.Windows.Forms中的類。
InitializeComponent();是窗體的初始化,有興趣也可以去研究下,比較簡單。

private void checkBox1_CheckedChanged(object sender, EventArgs e)

還有

private void button2_Click(object sender, EventArgs e)

等等都是事件處理,好比C語言的事件或消息或郵箱或者變量標志

        private void button3_Click(object sender, EventArgs e)
        {
            int cCurptr = 0;
            for (cCurptr = 0; cCurptr < this.comboBox1.Items.Count; cCurptr++)
            {
                TreeNode cTreeNode = new TreeNode(this.comboBox1.Items[cCurptr].ToString());
                this.treeView1.Nodes.Add(cTreeNode);
            }
            this.treeView1.Enabled = true;
            this.button1.Enabled = true;
        }
如上,C#里面也是有FOR循環(huán),基本上和C一樣呢
        private void BtnNameList_BtnClickEvent(object sender, System.EventArgs e)
        {
            int cIndex=(e as BtnList.BtnClickEventArgs).GetIndex;
            switch ((BtnNameType)cIndex)
            {
                case BtnNameType.按鈕A:
                    {
                        MessageBox.Show("我是按鈕A");
                    }break;
                case BtnNameType.按鈕B:
                    {
                        MessageBox.Show("我是按鈕B");
                    } break;
                case BtnNameType.按鈕C:
                    {
                        MessageBox.Show("我是按鈕C");
                    } break;
            }
        }
這個就是按鈕點擊事件的集中處理了,相當于有了一個框架,如果要新增一個按鈕以及這個按鈕的點擊處理,那么
就只要兩個地方更改,一個是剛才的枚舉多加一個,另外就這個地方加個CASE處理
    public enum BtnNameType
    {
        按鈕A,//

        按鈕B,

        按鈕C,

        按鈕D,
    }

                case BtnNameType.按鈕C:
                    {
                        MessageBox.Show("我是按鈕C");
                    } break;
                case BtnNameType.按鈕D:
                    {
                        MessageBox.Show("我是按鈕D");
                    } break;


所以說,框架和編程的思想也是通用的,一個程序要能夠很容易的擴展,降低維護成本
然后整體上就是一些常用控件的簡單使用,為了同事更好理解,特地按照顯示的箭頭操作,前一步操作后才能后一個使能操作
,這樣會比較好理解些。
具體的要看代碼,先貼上全部代碼來:
using System;
using System.IO;
using System.Linq;
using System.Drawing;
using System.Windows.Forms;//引用WINDOWS FRAMWORK 庫文件
//引用其他外來庫
//本工程只演示最常用幾個系統(tǒng)組件的用法,深入了解每個組件的用法請閱讀官網(wǎng)MDSN類庫說明
namespace WindowsFormsApplication1
{
    //枚舉實列,
    public enum BtnNameType
    {
        按鈕A,//
        按鈕B,
        按鈕C,
    }
    public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();
        }
        private void checkBox1_CheckedChanged(object sender, EventArgs e)
        {
            this.button5.Enabled = this.checkBox1.Checked;
        }
        private void button2_Click(object sender, EventArgs e)
        {
            int cCurptr = 0;
            this.comboBox1.Enabled = true;
            char[] cText = this.textBox1.Text.ToArray();
            for (cCurptr = 0; cCurptr < cText.Length; cCurptr++)
                this.comboBox1.Items.Add(cText[cCurptr]);
            this.comboBox1.SelectedIndex = 0;
            this.button3.Enabled = true;
        }
        private void button3_Click(object sender, EventArgs e)
        {
            int cCurptr = 0;
            for (cCurptr = 0; cCurptr < this.comboBox1.Items.Count; cCurptr++)
            {
                TreeNode cTreeNode = new TreeNode(this.comboBox1.Items[cCurptr].ToString());
                this.treeView1.Nodes.Add(cTreeNode);
            }
            this.treeView1.Enabled = true;
            this.button1.Enabled = true;
        }
        private void Form1_Load(object sender, EventArgs e)
        {
            this.buttonList1.BtnClickEvent += new BtnList.ButtonList.BtnClickEventHandler(BtnNameList_BtnClickEvent);
            this.buttonList1.GcBtnTxt = Enum.GetNames(typeof(BtnNameType));
            this.buttonList1.BackColor = Color.BlueViolet;
        }
        private void BtnNameList_BtnClickEvent(object sender, System.EventArgs e)
        {
            int cIndex=(e as BtnList.BtnClickEventArgs).GetIndex;
            switch ((BtnNameType)cIndex)
            {
                case BtnNameType.按鈕A:
                    {
                        MessageBox.Show("我是按鈕A");
                    }break;
                case BtnNameType.按鈕B:
                    {
                        MessageBox.Show("我是按鈕B");
                    } break;
                case BtnNameType.按鈕C:
                    {
                        MessageBox.Show("我是按鈕C");
                    } break;
            }
        }
        private void button1_Click(object sender, EventArgs e)
        {
            int cCurptr = 0;
            for (cCurptr = 0; cCurptr < this.treeView1.Nodes.Count; cCurptr++)
            {
                this.textBox2.Text += this.treeView1.Nodes[cCurptr].Text;
            }
            this.textBox2.Enabled = true;
            this.button4.Enabled = true;
        }
        private void button4_Click(object sender, EventArgs e)
        {
            if (this.saveFileDialog1.ShowDialog() == DialogResult.OK)
            {
                string fileName = this.saveFileDialog1.FileName;
                Stream stream = File.OpenWrite(fileName);
                StreamWriter writer = new StreamWriter(stream);
                writer.Write(this.textBox2.Text);
                this.button1.Enabled = false;
                this.button2.Enabled = false;
                this.button3.Enabled = false;
                this.button4.Enabled = false;
                this.textBox1.Enabled = false;
                this.textBox2.Enabled = false;
                this.comboBox1.Enabled = false;
                this.treeView1.Enabled = false;
            }
        }
        private void button5_Click(object sender, EventArgs e)
        {
            this.textBox1.Enabled = true;
            this.openFileDialog1.InitialDirectory = AppDomain.CurrentDomain.BaseDirectory;
            this.openFileDialog1.Filter = "文本文件 | *.txt";
            if (this.openFileDialog1.ShowDialog() == DialogResult.OK)
            {
                string fileName = this.openFileDialog1.FileName;
                if (fileName!="")
                {
                    string cText;
                    try
                    {
                        StreamReader sr = new StreamReader(fileName);
                        while ((cText = sr.ReadLine()) != null)
                        {
                            this.textBox1.Text += cText;
                        }
                    }
                    catch { }
                    this.button2.Enabled = true;
                }
            }
        }
    }
}





WindowsFormsApplication1.7z

51.11 KB, 下載次數(shù): 10, 下載積分: 黑幣 -5

評分

參與人數(shù) 1黑幣 +100 收起 理由
admin + 100 共享資料的黑幣獎勵!

查看全部評分

回復

使用道具 舉報

您需要登錄后才可以回帖 登錄 | 立即注冊

本版積分規(guī)則

小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術交流QQ群281945664

Powered by 單片機教程網(wǎng)

快速回復 返回頂部 返回列表
主站蜘蛛池模板: 日韩中文字幕 | 国产精品日韩在线 | 亚洲日本一区二区 | 五月婷婷六月丁香 | 91爱视频 | 久久大| 婷婷视频在线 | 中文字幕精品一区久久久久 | 黄色免费视频网站 | 极品白嫩少妇无套内谢 | 国产日韩在线视频 | 国产一区二区不卡视频 | 日韩免费大片 | 五月婷婷六月天 | 国产精品理论片 | 亚洲综合在线视频 | 国产一区在线免费观看 | 黄网免费看| 精品国产乱码久久久久久88av | 国产精品嫩草影院桃色 | 一区二区三区高清 | ass亚洲尤物裸体pics | 欧美va亚洲va | 天天爽夜夜爽夜夜爽 | 成人高清视频在线观看 | 真实的国产乱xxxx在线 | 中文字幕第三页 | 精品无人国产偷自产在线 | 久久久久久黄色 | 人与拘一级a毛片 | 伊人91 | 不卡中文字幕 | 国产盗摄一区二区三区 | 亚洲日本久久 | 久久国产精品视频 | 美女久久久久久 | 久久免费看视频 | 欧美色综合天天久久综合精品 | av福利在线观看 | 亚洲国产三级 | 久久久亚洲精品视频 |