看的代码越多,写的代码越多,就越是享受这些字符,终于渐渐懂得了那种传闻中的成就感,特别是自己从看不懂然后一步一步学,一个代码一个代码地敲,最后哪怕只是完成了一个小功能,也都是特别自豪的!这种自豪不用告诉别人,自己心里就是特别满足!

代码最美的地方就在于所有的不可能都是有可能的......

显示的功能:

1.通过选择不同的按钮,传递对应的数据到对应的窗口去;

2.选择其他,可以自己输入新的数据在传递。

传递数据,最主要的就是涉及到了公共变量,开始设定一个公共变量,然后大家都用这个数据,这样传递的时候就变得特别方便了,不会你是一个数据,我是一个数据,大家的数据多了就彻底混乱了。

这里我只定义了两个公共变量:ChoicedName和NameType,其中NameType用的是Dictionary,因为这里面有:“中文”、“英文”、“韩语”等等数据,放在Dictionary里特别合适。

插播一句:开始没想过用Dictionary的,开始是遇见enum的难题,上网查的资料,结果后面发现enum适用于静态数据处理和记录,换句话说就是,我这里的“其他名字类型”就没办法自己输入,后来才半路看到了Dictionary的。(另:如果有大神能用enum实现这个功能,麻烦告知,将不胜感激!)

 class PublicName
{
public static string ChoicedName;
//键和值,键必须是唯一的,而值不需要唯一的
public static Dictionary<int, string> NameType = new Dictionary<int, string>();
}

然后就是进入软件时开始选择的窗口

(这里是可以优化的,不用每个都显示加一个语言,只是现在懒得修改了)

    public partial class ChoiceName : Form
{
Form1 form1 = new Form1(); public ChoiceName()
{
InitializeComponent();
} private void button1_Click(object sender, EventArgs e)
{
PublicName.NameType.Add(, "中文");
PublicName.ChoicedName = "中文";
form1.Show();
this.Visible = false;
} private void button2_Click(object sender, EventArgs e)
{
PublicName.NameType.Add(, "英文");
PublicName.ChoicedName = "英文";
form1.Show();
this.Visible = false;
} private void button3_Click(object sender, EventArgs e)
{
PublicName.NameType.Add(, "韩语");
PublicName.ChoicedName = "韩语";
form1.Show();
this.Visible = false;
} private void button4_Click(object sender, EventArgs e)
{
PublicName.NameType.Add(, "法语");
PublicName.ChoicedName = "法语";
form1.Show();
this.Visible = false;
} private void button5_Click(object sender, EventArgs e)
{
OtherName oN = new OtherName();
oN.Show();
this.Visible = false;
}
}

如果选择的是“其他”,就需要进入自己输入的窗口界面去。

     public partial class OtherName : Form
{
public OtherName()
{
InitializeComponent();
} private void button1_Click(object sender, EventArgs e)
{
PublicName.ChoicedName = textBox1.Text;
PublicName.NameType.Add(, PublicName.ChoicedName);
Form1 ending = new Form1();
ending.Show();
this.Close();
}
}

最后,不管是“中文”还是“其他”,都要传递数据到Form1,这就体现了公共变量的重要性了,刚刚的数据全部都是ChoicedName,所以,form1直接找ChoicedName就好了!

   public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
} private void Form1_Load(object sender, EventArgs e)
{
comboBox1.Text = PublicName.ChoicedName;
} private void button1_Click(object sender, EventArgs e)
{
Application.Exit();
}
}

C#学习笔记-数据的传递(公共变量)以及Dictionary的更多相关文章

  1. C#学习笔记-数据的传递以及ToolStripProgressBar

    代码: 方法一:窗体的代码-->可以直接通过预设的Click事件来实现控制进度条. public partial class Form1 : Form { public Form1() { In ...

  2. Flutter学习笔记(3)--Dart变量与基本数据类型

    一.变量 在Dart里面,变量的声明使用var.Object或Dynamic关键字,如下所示: var name = ‘张三’: 在Dart语言里一切皆为对象,所以如果没有将变量初始化,那么它的默认值 ...

  3. (转)Python学习笔记(1)__name__变量

    Python使用缩进对齐组织代码的执行,所有没有缩进的代码,都会在载入时自动执行.每个文件(模块)都可以任意写一些没有缩进的代码,并在载入时自动执行.为了区分 主执行代码和被调用文件,Python引入 ...

  4. 0013 Java学习笔记-面向对象-static、静态变量、静态方法、静态块、单例类

    static可以修饰哪些成员 成员变量---可以修饰 构造方法---不可以 方法---可以修饰 初始化块---可以修饰 内部类(包括接口.枚举)---可以修饰 总的来说:静态成员不能访问非静态成员 静 ...

  5. Django 学习笔记(四)模板变量

    关于Django模板变量官方网址:https://docs.djangoproject.com/en/1.11/ref/templates/builtins/ 1.传入普通变量 在hello/Hell ...

  6. typescript学习笔记(一)---基础变量类型

    作为一个前端开发者,学习新技术跟紧大趋势是必不可少的.随着2019年TS的大火,我打算利用一个月的时间学习这门语言.接下来的几篇文章是我学习TS的学习笔记,其中也会掺杂一些学习心得.话不多说,先从基础 ...

  7. [Golang学习笔记] 04 程序实体1 变量声明

    变量声明: Go语言的程序实体包含:变量.常量.函数.结构体和接口,是一门静态类型的编程语言. (在声明变量或常量的时候,需要指定类型,或者给予足够信息是的Go语言能够推导出类型) Go语言变量的类型 ...

  8. Java学习笔记之:Java的变量

    一.介绍 在Java语言中,所有的变量在使用前必须声明.声明变量的基本格式如下: type identifier [ = value][, identifier [= value] ...] ; 格式 ...

  9. [ 原创 ]学习笔记- 数据在Activity之间的传递的情况

    情况一:一个Activity跳转到另一个Activity时,将第一个Activity的数据传递到第二个Activity里面. 分析:当一个界面跳转到另一个界面的同时还要讲数据传递过去,这种情况需要用I ...

随机推荐

  1. 一台主机上安装多个Tomcat

    1. 下载解压版的Tomcat,并解压两次,分别命名为Tomcat_Server_01和Tomcat_Server_02: 2. 进入Tomcat_Server_01\bin目录,编辑service文 ...

  2. Java中, 函数的调用、随机数字

    函数:     独立完成某个功能的代码模块.(方法) 作用是为了让代码结构更加良好.模块清晰,实现重用. 函数的四要素:名称,输入值,加工过程,返回值 Java中函数的语法 static 返回类型 函 ...

  3. Scalaz(56)- scalaz-stream: fs2-安全运算,fs2 resource safety

    fs2在处理异常及资源使用安全方面也有比较大的改善.fs2 Stream可以有几种方式自行引发异常:直接以函数式方式用fail来引发异常.在纯代码里隐式引发异常或者在运算中引发异常,举例如下: /函数 ...

  4. mybatis中的查询缓存

    一: 查询缓存 Mybatis提供查询缓存,用于减轻数据压力,提高数据库压力. Mybatis提供一级缓存和二级缓存. 在操作数据库时需要构造SqlSession对象,在对象中有一个数据结构(Hash ...

  5. 十一个行为模式之迭代器模式(Iterator Pattern)

    定义: 提供一种方法来访问聚合对象,而不用暴露这个对象的内部表示.使得存储和遍历两个职责相互分离,提高系统的可扩展性. 结构图: Iterator:抽象迭代器类,定义了访问和遍历元素的接口,例如:ne ...

  6. 【GOF23设计模式】单例模式

    来源:http://www.bjsxt.com/ 一.[GOF23设计模式]_单例模式.应用场景.饿汉式.懒汉式 1.GOF23设计模式  2.单例模式  3.饿汉式  1 package com.t ...

  7. angular单元测试与自动化UI测试实践

    关于本文:介绍通过karma与jsmine框架对angular开发的应用程序进行单元与E2E测试. angular单元测试与集成测试实践 先决条件 创建项目 webstorm中创建空白web项目 创建 ...

  8. Bootstrap栅格布局系统的特点

    栅格布局系统的特点: (1)所有的行必须放在容器中: .container或.container-fluid (2)分为多行(row),一行中平均分为12列(col) (3)网页内容只能放在列(col ...

  9. autocomplete="off" 不起作用

    首先来了解一下 表单自动填充的原理,当我们登录的时候,如果选择的记住登录密码,那么后续界面中如果有 <input type="text" name="field1& ...

  10. KEIL中启动文件详解(汇编语言)

    原文在此:http://www.cnblogs.com/mddblog/p/4920063.html 概述 在嵌入式系统中,启动文件是整个系统非常关键的部分,它会进行一些底层的初始化,构建程序运行必要 ...