C# frequently use code snippet


        // popup message modeless dialog
        static void PopUpMsg(string msg)
        {
            TextBox editBox = new TextBox();
            editBox.ReadOnly = true;
            editBox.Multiline = true;
            editBox.Dock = DockStyle.Fill;
            editBox.Text = msg;

            Form dlg = new Form();
            dlg.FormBorderStyle = FormBorderStyle.FixedSingle;
            dlg.Text = Application.ProductName;
            dlg.Controls.Add(editBox);
            dlg.Show();
        }


      // save control values on form close
        private void Form1_FormClosed(object sender, FormClosedEventArgs e)
        {
            File.WriteAllLines(Path.ChangeExtension(Application.ExecutablePath, "formvalue.csv"),
                from c in this.Controls.OfType<Control>()
                where c is TextBox || c is DateTimePicker || c is CheckBox
                select string.Format("{0}={1}", c.Name, (c is CheckBox) ? (c as CheckBox).Checked.ToString() : c.Text)
                );

        }

        // load control values startup
        private void Form1_Load(object sender, EventArgs e)
        {
			if(File.Exists(Path.ChangeExtension(Application.ExecutablePath, "formvalue.csv")))
			{
				var cfgMap =
					(from line in File.ReadAllLines(Path.ChangeExtension(Application.ExecutablePath, "formvalue.csv"))
					 let tokens = line.Split('=')
					 select new { Key=tokens[0].Trim(), Value=tokens[1].Trim() }).
					 ToDictionary(kvp => kvp.Key, kvp => kvp.Value);


				Controls.Cast<Control>().ToList<Control>().ForEach(ctrl =>
				{
					if(cfgMap.ContainsKey(ctrl.Name))
					{
						if (ctrl is TextBox || ctrl is DateTimePicker)
							ctrl.Text = cfgMap[ctrl.Name];
						else if (ctrl is CheckBox)
							(ctrl as CheckBox).Checked = "true".Equals(cfgMap[ctrl.Name], StringComparison.OrdinalIgnoreCase);
					}
				});
			}
        }



// simple serialization example
namespace simple_serialize
{
    [Serializable]
    class MyObject
    {
        public string Name;
        public double Weight;
    }

    class Program
    {
        static void Main(string[] args)
        {
            MyObject obj = new MyObject();
            obj.Name = "David";
            obj.Weight = 60;

            string soapFName = "objects.soap";
            using(FileStream fs = File.Create(soapFName))
            {
                IFormatter fmt = new SoapFormatter();
                fmt.Serialize(fs, obj);
            }

            MyObject objLoad = null;
            using (FileStream fs = File.OpenRead(soapFName))
            {
                IFormatter fmt = new SoapFormatter();
                objLoad = (MyObject)fmt.Deserialize(fs);
            }

            if(objLoad != null)
            {
                Console.WriteLine("name = {0}, weight = {1}", objLoad.Name, objLoad.Weight);
            }

            Console.ReadLine();
        }
    }
}



评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值