C# 桌面程序开发 小技能

更新中...

  1. 窗体不能被拉伸 FormBorderStyle 属性设置为FixedToolWindow
  2. 默认居中显示 StartPosition : CenterScreen
//textbox   提示文字 (来源:百度知道)
using System;
using System.Drawing;
using System.Windows.Forms;
 
namespace Baidu_20131113_1
{
    public partial class Form1 : Form
    {
        /// <summary>
        /// 文本框中的提示信息
        /// </summary>
        private const string Hint = "input something here...";
 
        public Form1()
        {
            InitializeComponent();
        }
 
        /// <summary>
        /// 用于处理文本框的单击事件
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        private void textBoxMessage_Click(object sender, EventArgs e)
        {
            // 如果文本框的文本值不等于提示信息,直接返回
            if (!this.textBoxMessage.Text.Trim().Equals(Hint))
            {
                return;
            }
            // 否则
            // 将文本框的字体颜色设为黑色
            this.textBoxMessage.ForeColor = Color.Black;
            // 将文本框清空
            this.textBoxMessage.Clear();
        }
 
        /// <summary>
        /// 用于处理文本框的鼠标离开事件
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        private void textBoxMessage_MouseLeave(object sender, EventArgs e)
        {
            // 如果文本框的文本值不为空,直接返回
            if (!string.IsNullOrEmpty(this.textBoxMessage.Text.Trim()))
            {
                return;
            }
            // 否则
            // 将文本框的字体颜色设为银色
            this.textBoxMessage.ForeColor = Color.Silver;
            // 将文本框的文本值设为提示信息
            this.textBoxMessage.Text = Hint;
        }
    }
}
参考资料

网络请求
网络请求
listview分页
listview分页
winform控件自定义等

CYQ 连接access数据库 以及读取数据遍历
    /// MAction("表名","连接字符串")
 using (MAction action = new MAction("test", string.Format("Provider=Microsoft.ACE.OLEDB.12.0; Data Source={0}", AppDomain.CurrentDomain.BaseDirectory + "Database1.accdb"))) {
                MDataTable table =   action.Select();
                //string str = table.Rows[0]["姓名"].Value.ToString();
                for (int i = 0; i < table.Rows.Count; i++)
                {
                    foreach (MDataCell mdc in table.Rows[i]) {
                        string strValue = mdc.Value.ToString();
                        string strName = mdc.ColumnName.ToString();
                        System.Diagnostics.Debug.WriteLine(" ddd  "+strName+" --- " + strValue);
                    }
                   
                }
            }
CYQ连接文本数据库 读取数据
//void LoadData()    
        //{
        //    int count;
        //    using (MAction action = new MAction("Users.txt", "Txt Path={0}"))
        //    {
        //        //从文件中获取内容
        //        action.Select(pagerControl2.PageIndex, pagerControl2.PageSize, string.Empty, out count).Bind(dataGridView1);
        //        System.Diagnostics.Debug.WriteLine(pagerControl2.PageIndex + "---"+ pagerControl2.Size);
        //        System.Diagnostics.Debug.WriteLine(""+count);
        //        //LogUtils.AddUpdateLog("ERROR","日志工具");
        //        if (count < 10) {
        //        }
        //        else
        //        {
        //            pagerControl2.DrawControl(count);
        //        }
        //    }
        //}
  /// <summary>
        /// 创建文件件数据库表  并插入数据
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        private void StartForm_Load(object sender, EventArgs e)
        {
            //创建文件数据库表。
            MDataTable.CreateSchema("Users.txt", false, new string[] { "TiMing", "PassWord", "Enabled" }, SqlDbType.NText, SqlDbType.NText, SqlDbType.NText);
            for (int i = 0; i < 200; i++)//插入200条数据。
            {
                using (MAction action = new MAction("Users.txt", "Txt Path={0}"))
                {
                    action.Set("TiMing", "题名" + i);
                    action.Set("PassWord", "密码" + i);
                    action.Set("Enabled", i % 2 == 0);
                    action.Insert(InsertOp.None);
                }
            }
            //MessageBox.Show("ddd","ddd");
            pagerControl1.OnPageChanged += new EventHandler(pagerControl1_OnPageChanged);
            LoadData();
        }

CYQ的相关文档
一款相当给力的数据库操作组件

用MDataColumns 复制表结构并创建新的表
string conn = "数据库连接串";
using (MAction action = new MAction("test", conn)) {
    mdc = action.Data.Columns;
}
bool a =  DBTool.CreateTable("test2",mdc,conn);
自己指定字段创建新表
  string conn = "数据库连接串";
mdc = new MDataColumn();
mdc.Add("测试字段",SqlDbType.Text);
mdc.Add("测试字段2",SqlDbType.Text);
mdc.Add("测试字段3",SqlDbType.Text);
mdc.Add("测试字段4",SqlDbType.Text);
mdc.Add("测试字段5",SqlDbType.Text);
mdc.Add("测试字段6",SqlDbType.Text);
bool a = DBTool.CreateTable("TEST3",mdc,conn);
if (a)
{
    MessageBox.Show("success");
}
else {
    MessageBox.Show("failed");
}
.net 中没有 ConfigurationManager 解决办法

在引用的文件夹右键添加引用,选择程序集,搜索 configuration 勾选确定即可

从配置文件中读取 配置
<connectionStrings>
    <add name="strCon"
        connectionString="Provider=Microsoft.ACE.OLEDB.12.0;Data Source=|DataDirectory|\Database1.accdb"
        providerName="System.Data.OleDb" />
</connectionStrings>
<appSettings>
    <add key="aaa" value="bbb"/>
</appSettings>
string conn = ConfigurationManager.ConnectionStrings["strCon"].ToString();
string conn = ConfigurationManager.AppSettings["aaa"];

C# Winform 窗体美化(目录)

第一种 关闭当前窗口,并开启新的窗口 (使用的时候提示过时,原理是开启一个新的线程去启动这个窗口)
                        BookSellerMain bsm = new BookSellerMain();
                        //账号、密码验证通过后,执行以下代码
                        System.Threading.Thread t = new System.Threading.Thread(new System.Threading.ThreadStart(ThreadProc));
                            #pragma warning disable CS0618 // 类型或成员已过时
                        t.ApartmentState = System.Threading.ApartmentState.STA;
                            #pragma warning restore CS0618 // 类型或成员已过时
                        t.Start();
                        bsm.myevent += new BookSellerMain.dd(BookSellerMain_myevent);
                        this.Close();
第二种 (也有人说 无法关闭当前窗口,并开启新的窗口)
//两个窗口form1和form2 
//点击form1中的一个按钮,打开form2同时关闭form1

form2 f2 = new form2();

f2.show();

this.close();  //也可以直接 close();

(注意:如果form1是主窗口。不可以close只能hide ,即this.hide())

若要退出当前程序:Application.exit();
点击右上角关闭触发的方法
 protected override void OnClosed(EventArgs e)
        {
            base.OnClosed(e);
           /// MessageBox.Show("OnClosed");
        }

        protected override void OnFormClosing(FormClosingEventArgs e)
        {
            base.OnFormClosing(e);
          //  MessageBox.Show("OnFormClosing");
        }

        protected override void OnFormClosed(FormClosedEventArgs e)
        {
            base.OnFormClosed(e);
          //  MessageBox.Show("OnFormClosed");
        }

        protected override void OnClosing(CancelEventArgs e)
        {
            base.OnClosing(e);
           // MessageBox.Show("OnClosing");
        }

C# 关于单例的简单使用

C# 解析的一点东西

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 206,311评论 6 481
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 88,339评论 2 382
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 152,671评论 0 342
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 55,252评论 1 279
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 64,253评论 5 371
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 49,031评论 1 285
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 38,340评论 3 399
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,973评论 0 259
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 43,466评论 1 300
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,937评论 2 323
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 38,039评论 1 333
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,701评论 4 323
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 39,254评论 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 30,259评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,485评论 1 262
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 45,497评论 2 354
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,786评论 2 345