zoukankan      html  css  js  c++  java
  • 【用户自定义控件】 Winform Winform 用户自定义控件

    概念:自定义控件只是对系统自带的一些控件就行组合,修改而已。

     

    image

     

    新建的用户自定义控件类库。一共2个自定义控件。

    一个是 label 自定义显示时间控件,名字为  LabelTimer

    另一个是btnOpenDiag,点击按钮弹出选择文件框,然后获取文件里的每行内容,并赋值给 ArrayList 属性。

     

     

     

     

     

    btnOpenDiag 的部分代码如下

     

    重点:重写Text属性,并让Text属性在 设计器中能直接使用。

    [Browsable(true), DesignerSerializationVisibility(DesignerSerializationVisibility.Visible), Bindable(true)]   //不加这个,无法在设计器中直接设置Text
           public override string Text
           {
               get { return button1.Text; }
                set { button1.Text = value; }
           }

    using System;
    using System.Collections.Generic;
    using System.ComponentModel;
    using System.Drawing;
    using System.Data;
    using System.Linq;
    using System.Text;
    using System.Windows.Forms;
    using System.IO;
    using System.Collections;
    namespace shuimo_windowsControls
    {
    public partial class btnOpenDiag : UserControl
    {
    public ArrayList txtContextCollection = new ArrayList();
    private string text = null;

    [Browsable(true), DesignerSerializationVisibility(DesignerSerializationVisibility.Visible), Bindable(true)]
    public override string Text
    {
    get { return button1.Text; }
    set { button1.Text = value; }
    }

    public btnOpenDiag()
    {
    InitializeComponent();
    }

    private void button1_Click(object sender, EventArgs e)
    {
    OpenFileDialog newD = new OpenFileDialog();
    newD.Title = "请选择你的文件";
    newD.InitialDirectory = "c:\\";
    newD.Filter = "
    txt files (*.txt)|*.txt|(All files (*.*))|*.* ";
    newD.FilterIndex = 1; //过滤只显示 txt文件,第1个
    newD.RestoreDirectory = true;

    if (newD.ShowDialog() == DialogResult.OK)
    {

    //读取文件路径
    string name = newD.FileName;


    ///
    ///读取文本内容
    ///
    using (StreamReader strRead = new StreamReader(name))
    {
    string line;

    while ((line = strRead.ReadLine()) != null) //空、空格、tab(\t)的都不读
    {
    if (line.Replace("
    ", "") != "" && line.Replace("\t", "") != "") //空格,制表符号
    {
    txtContextCollection.Add(line);
    }
    }

    }

    }


    }

    private void UserControl1_Load(object sender, EventArgs e)
    {
    Button a = (Button)(this.Controls.Find("
    button1", true)[0]);
    a.Text = "
    初始文本";
    }
    }
    }

  • 相关阅读:
    echarts 动态获取数据(柱状图,折线图)
    mybatis 注解 批量更新
    jquery+ spring+java 多文件上传
    前端bootstrap分页+mybatis+PageHelper分页
    文件导出成excel
    文件上传excel文件
    java 文件转成pdf文件 预览
    java 单文件下载
    java 文件上传
    mybatis postgresql 批量删除
  • 原文地址:https://www.cnblogs.com/StudyLife/p/2637213.html
Copyright © 2011-2022 走看看