不错呦!smile@林凯西,确保“准备文件”中的几个文件都有安装,S...您好,看了您这篇帖子觉得很有帮助。但是有个问题想请...我的修改过了怎么还被恶意注册呢 @jjjjiiii 用PJ快9年了,主要是A...PJ3啊,貌似很少有人用PJ了,现在不是WP就是z...@332347365,我当时接入时错误码没有-10...楼主,ChkValue值应为-103是什么意思呢?...大哥 你最近能看到我发的信息,请跟我联系,我有个制...
WinForm用户控件:ComboTextBox
编辑:dnawo 日期:2009-08-05
WinForm应用程序做资料录入时,有些内容我们不希望让用户手工录入,而是弹出一新窗体让用户选择内容,这时我们就需要一个类似控件:

vs2008中没有这样的控件,但通过组合TextBox和Button控件可以实现要求,这样我们得做个用户控件来满足需求,命名为ComboTextBox。
第一步:新建用户控件ComboTextBox,在界面放置好TextBox和Button后,控件代码(ComboTextBox.cs)如下:
第二步:主窗体代码(Form1.cs)如下:
最终效果:

点击这里下载源码,使用vs20008开发。

vs2008中没有这样的控件,但通过组合TextBox和Button控件可以实现要求,这样我们得做个用户控件来满足需求,命名为ComboTextBox。
第一步:新建用户控件ComboTextBox,在界面放置好TextBox和Button后,控件代码(ComboTextBox.cs)如下:
复制内容到剪贴板
程序代码

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Drawing;
using System.Data;
using System.Text;
using System.Windows.Forms;
namespace WindowsFormsApplication1
{
public partial class ComboTextBox : UserControl
{
public ComboTextBox()
{
InitializeComponent();
}
/// <summary>
/// 获取或设置文本框中的当前文本
/// </summary>
public new string Text
{
get { return textBox1.Text; }
set { textBox1.Text = value; }
}
//声明一个事件,在按钮点击的时候触发
public delegate void UcClickEventHandler();
public event UcClickEventHandler UcClick;
public void OnUcClick()
{
if (UcClick != null)
UcClick();
}
/// <summary>
/// 触发UcClick事件
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
private void button1_Click(object sender, EventArgs e)
{
OnUcClick();
}
}
}
using System.Collections.Generic;
using System.ComponentModel;
using System.Drawing;
using System.Data;
using System.Text;
using System.Windows.Forms;
namespace WindowsFormsApplication1
{
public partial class ComboTextBox : UserControl
{
public ComboTextBox()
{
InitializeComponent();
}
/// <summary>
/// 获取或设置文本框中的当前文本
/// </summary>
public new string Text
{
get { return textBox1.Text; }
set { textBox1.Text = value; }
}
//声明一个事件,在按钮点击的时候触发
public delegate void UcClickEventHandler();
public event UcClickEventHandler UcClick;
public void OnUcClick()
{
if (UcClick != null)
UcClick();
}
/// <summary>
/// 触发UcClick事件
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
private void button1_Click(object sender, EventArgs e)
{
OnUcClick();
}
}
}
第二步:主窗体代码(Form1.cs)如下:
复制内容到剪贴板
程序代码

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Text;
using System.Windows.Forms;
namespace WindowsFormsApplication1
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}
private void Form1_Load(object sender, EventArgs e)
{
comboTextBox1.Text = "---请选择---";
comboTextBox1.UcClick += new ComboTextBox.UcClickEventHandler(ShowForm2);
}
/// <summary>
/// 打开Form2
/// </summary>
private void ShowForm2()
{
(new Form2()).Show(this);
}
/// <summary>
/// 设置/获取控件内容
/// </summary>
public string ComboTextBoxText
{
get { return comboTextBox1.Text; }
set { comboTextBox1.Text = value; }
}
}
}
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Text;
using System.Windows.Forms;
namespace WindowsFormsApplication1
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}
private void Form1_Load(object sender, EventArgs e)
{
comboTextBox1.Text = "---请选择---";
comboTextBox1.UcClick += new ComboTextBox.UcClickEventHandler(ShowForm2);
}
/// <summary>
/// 打开Form2
/// </summary>
private void ShowForm2()
{
(new Form2()).Show(this);
}
/// <summary>
/// 设置/获取控件内容
/// </summary>
public string ComboTextBoxText
{
get { return comboTextBox1.Text; }
set { comboTextBox1.Text = value; }
}
}
}
最终效果:

点击这里下载源码,使用vs20008开发。






评论: 0 | 引用: 0 | 查看次数: 4269
发表评论
请登录后再发表评论!