Visual Studio 2010创建Windows窗体应用程序

一 什么是Windows窗体应用程序?

Windows窗体应用程序指的是在Windows操作系统上运行的应用程序,它们使用了Windows窗体库来创建用户界面。Windows窗体应用程序通常具有窗体、按钮、文本框、菜单等控件,用户可以通过与这些控件交互来完成各种任务。

开发Windows窗体应用程序一般使用Visual Studio等集成开发环境(IDE),通过拖拽和配置控件,开发人员可以快速地创建用户界面。在创建窗体应用程序时,开发人员可以使用C#、VB.NET等编程语言来编写逻辑代码,与控件进行交互,处理用户输入,展示数据等。

Windows窗体应用程序具有以下特点:

1.用户友好:通过图形化界面和丰富的控件,使得用户可以直观地操作应用程序。

2.可视化设计:开发人员可以通过可视化界面设计工具来设计窗体布局和控件样式。

3.交互性:用户可以与控件进行交互,例如点击按钮、输入文本等,触发相应的事件。

4.数据展示:窗体应用程序可以从数据库、文件或其他数据源中获取数据,并将其展示给用户。

5.多线程支持:开发人员可以使用多线程来实现复杂的操作,避免应用程序在执行耗时任务时出现假死现象。

二 如何创建Windows窗体应用程序?

1.创建步骤

文件->新建->项目
在这里插入图片描述

选择Windows窗体应用程序->确定

创建成功
请添加图片描述

2.熟悉界面

请添加图片描述

页面左侧为解决方案资源管理器(视图->解决方案管理器)

请添加图片描述

页面中间即为所创建的窗体
请添加图片描述

页面右上侧为工具箱(视图->工具箱)
请添加图片描述

右下侧为工具箱控件属性(右击窗体->属性)
请添加图片描述

三 Windows窗体及消息框

1)窗体

3.1.1 常用属性

属性含义
Text设置窗体的标题
Size设置窗体的大小
BackColor设置对象背景颜色
Font设置或者获取显示文字的字体
ForeColor设置对象前景颜色
Icon设置窗体的图标
MinimizeBox设置窗体的最小化按钮
MaximizeBox设置窗体的最大化按钮

3.1.2 常用事件

事件含义
Load在第一次显示窗体前发生
Click当程序运行后用鼠标单击对象时触发的事件
Move移动控件时触发该事件
Closed关闭窗体时触发该事件

3.1.3 常用方法

方法含义
Close()关闭窗体
Refresh()清除窗体中生成的图形或文字
CreateGraphics()创建Graphics对象
Activate()激活窗体并获得焦点
ResetBackColor()重置BackColor属性为默认值
ShowDialog()将窗体显示为模式对话框
Show()显示控件
Hide()隐藏控件
Dispose()释放所使用的资源

请添加图片描述

请添加图片描述

2) 消息框

3.2.1 MessageBoxButtons枚举成员

成员说明
Ok“确定”按钮
OkCancel“确定”、“取消”按钮
YesNo“是”、“否”按钮
YesNoCancel“是”、“否”、“取消”按钮
AbortRetryIgnore“终止”、“重试”、“忽略”按钮
RetryCancel重试”、“取消”按钮

3.2.2 MessageBoxIcon枚举成员

成员说明
None无提示图标
Hand在这里插入图片描述
Question在这里插入图片描述
Exclamation在这里插入图片描述
Asterisk在这里插入图片描述
Stop在这里插入图片描述
Error在这里插入图片描述
Warning在这里插入图片描述
Information在这里插入图片描述

3.2.3 DialogResult枚举成员

成员说明
None没有单击消息框按钮,模式消息框继续运行
OK单击了消息框“确定”按钮
Cancel单击了消息框“取消”按钮
Abort单击了消息框“终止”按钮
Retry单击了消息框“重试”按钮
Ignore单击了消息框“忽略”按钮
Yes单击了消息框“是”按钮
No单击了消息框“否”按钮

3.2.4 使用消息框显示信息

private: System::Void Form1_Load(System::Object^  sender, System::EventArgs^  e) 
{
				 MessageBox::Show(" 是否启动原神? ","原神",MessageBoxButtons::OKCancel,MessageBoxIcon::Asterisk);
			     //if(MessageBox::Show("顺其自然","坦荡",MessageBoxButtons::OKCancel,MessageBoxIcon::Asterisk)==System::Windows::Forms::DialogResult::OK)	
	             // this->Close();
}

请添加图片描述

四 常见的Windows控件及使用

Windows常用控件有标签、按钮、文本框、单选按钮、复选按钮、列表框、组合框、分组框、面板、图片框等。本节分别介绍窗体中添加控件方法及常用控件的使用。

1. 为窗体添加控件

1)双击工具箱中的控件,将在窗体的默认位置添加默认大小的控件。
2)在工具箱中选中一个控件,按住鼠标左键不放,把鼠标指针移到窗体的相应位置,然后松开鼠标左键。
在这里插入图片描述

2.调整控件

控件添加到窗体中之后,可以对控件进行调整,包括其位置、大小、对齐方式等。
要调整控件的摆放,首先要选中窗体中的控件(如果要选择多个控件时,可以先按下CTRL键或SHIFT键,同时用鼠标单击要选择的其他控件;或者按下鼠标左键拖动鼠标,选择一个范围,该范围内的控件均被选中),然后通过格式菜单或工具栏上的格式按钮进行调整。

在这里插入图片描述

3.常见控件及其属性

4.3.0 属性

事 件描 述
Click在单击控件时发生
DoubleClick在双击控件时发生
DragDrop完成拖放时发生
DragEnter当被拖动的对象进入控件的边界时发生
DragLeave当被拖动的对象离开控件的边界时发生
MouseDown当鼠标指针位于控件上并按下鼠标键时发生
MouseUp当鼠标指针位于控件上并释放鼠标键时发生
MouseMove鼠标指针移到控件上时发生
KeyPress控件有焦点的情况下,按下任一键时发生
KeyDown控件有焦点的情况下,按下并释放键时发生
KeyUp控件有焦点的情况下,释放任一键时发生
GotFocus在控件获得焦点时发生
LostFocus当控件失去焦点时发生
Paint在重绘控件时发生
Resize在调整控件大小时发生
Validated在控件完成验证时发生
Validating在控件正在验证时发生

4.3.1 按钮控件

Button(按钮)控件,在工具箱中的图标是

请添加图片描述
用户单击按钮后,会触发Click(单击)事件处理程序。 按钮控件不支持DoubleClick(双击)事件。
例:
1).在窗体上拖放一个按钮Button1。
2).选中Button1,打开属性窗口的属性标签页
选择单击
在这里插入图片描述
选择Text属性,为该属性赋值为“我很帅,但很坏”
请添加图片描述
3) 选择Button1,打开属性窗口的事件标签页
单击图标
在这里插入图片描述
双击它的单击事件

请添加图片描述
就会跳转到代码编辑器 ,并自动生成Button1的单击事件的框架,代码如下:

private: System::Void button7_Click(System::Object^  sender, System::EventArgs^  e)
{
			button7->Text="我很丑,可是我很温柔!";
            button7->Size= System::Drawing::Size(170, 80);
}

4)运行程序,用鼠标单击按钮,结果如下:
请添加图片描述
图单击按钮前的界面请添加图片描述
图 单击按钮后的界面

4.3.2 文本控件

4.3.2.1 Label控件

Label控件又称为标签控件,在工具箱中的图标是
在这里插入图片描述
通常用来输出标题、显示处理后的结果、标识窗体上的对象或者输出文本信息等,这些信息不能被编辑,标签一般也不用于事件的触发。
标签中常用属性:

属性说明
Text于显示标签的内容,是标签控件的重要属性之一
AutoSize设置控件大小是否随标签的Text属性的内容大小自动调整,取值为True或者False,默认值为True。
Image用于设置图像

选择Label控件,打开属性窗口,在Image属性右侧有一个带三个逗点的按钮
在这里插入图片描述
单击该按钮,显示一个打开文件页面,找到保存图像文件的相应位置,且选择该文件,并单击“打开”按钮,这样就完成了对标签控件的图像设置。

请添加图片描述

4.3.2.2 TextBox控件

TextBox控件又称为文本框控件,在工具箱中的图标是
在这里插入图片描述
该控件可以输入信息,并且可以显示输出信息,同时还可以修改、编辑文本框的内容。
常用属性:

属性说明
WordWrap多行编辑控件是否自动换行
MaxLength设置文本框允许输入字符的最大长度,该属性为0时,其最大长度仅受内存限制
MultiLine设置是否可以输入多行文本,当取值为True时,允许输入多行的文本(此时通常也把WordWrap设置为True),当取值为False时,只能输入一行文本,超过文本框部分的文本不能显示
PasswordChar允许设置一个字符,程序在运行时,文本框中所有的Text属性的内容全部被PasswordChar属性所设定的值代替
ReadOnly表示只读,其值为布尔型
ScrollBars设置滚动条模式,None为无滚动条,Horizontal为水平滚动条,Vertical为垂直滚动条,Both为水平和垂直滚动条
SelectedText在文本框中选中的文本内容

TextBox常用方法

方法说明
Clear()清除文本框中的内容
Copy()将文本框中选中的文本复制到剪贴板
Cut()将文本框中选中的文本剪切到剪贴板
Paste()将剪贴板中的内容粘贴到文本框中当前光标所在位置
Redo()重新应用控件中上一次撤销的操作
Select ()选中文本框中的部分或者全部文本
SelectAll()选中文本框中的全部内容
Undo()撤销对文本框的上一个编辑操作

例设计一段程序,完成在相应编辑框中输入姓名、性别、年龄、专业,然后单击确定按钮,弹出一个消息框,显示你所填写的内容。
在窗体上添加四个Label控件,修改它们的Text属性如表所示
控件属性设置

在这里插入图片描述
请添加图片描述
在button的单机事件中编写如下代码:

public: System::Void button1_Click_1(System::Object^  sender, System::EventArgs^  e) 
{
	String^ aa;//托管
	aa="ddd";
	aa="姓名为:"+name->Text +"  "+"性别为:"+ sex->Text+"年龄为:"+age->Text +"  "+"专业为a:"+ major->Text;;
	name->Cut();
    sex->Paste();	
    MessageBox::Show(aa);
}

请添加图片描述
动态创建:

TextBox^ a=gcnew TextBox();
this->Controls->Add(a);
a->Location=System::Drawing::Point(20,200);
// ^代表托管指针

4.3.2.3 RichTextBox控件

RichTextBox控件又称为富文本控件,在工具箱中的图标是
在这里插入图片描述
该控件用于显示、输入和操作带有格式的文本,该控件提供了比TextBox更高级的格式设置。
RichTextBox控件常用属性见表所示
在这里插入图片描述
例 使用RichTextBox控件的SelectionColor属性和SelectionFont属性对选中的文本进行颜色和字体的设置

private: System::Void button1_Click(System::Object^  sender, System::EventArgs^  e)
{
	richTextBox1->SelectionFont= gcnew System::Drawing::Font("Dotum",12,FontStyle::Italic);
    richTextBox1->SelectionColor=System::Drawing::Color::Blue;
}

请添加图片描述
选中后点击button的结果
请添加图片描述

private: System::Void button2_Click(System::Object^  sender, System::EventArgs^  e)
 {
    textBox1->Text=richTextBox1->SelectedText;
	//丢失选中文本的格式	 
}

请添加图片描述

4.3.3 容器控件

4.3.3.1 GroupBox控件

GroupBox控件又称为分组框,在工具箱中的图标是
在这里插入图片描述
该控件可以为其他控件提供可识别的分组。分组框本身是一个容器类控件,根据程序设计的需要,把可归为同一组的一些控件放在一个GroupBox控件中,这样,GroupBox控件就成为这些控件的父控件,在移动GroupBox控件时,它内部的其他控件也随之移动

4.3.3.2 Panel控件

Panel控件也是一个容器控件,在工具箱中的图标是
在这里插入图片描述
该控件没有Text属性,而GroupBox控件具有Text属性。Panel控件把其他控件组合在一起,放在一个面板上,更易于管理这些控件
请添加图片描述

4.3.4 选择控件

4.3.4.1 RadioButton控件

RadioButton控件又称为单选按钮控件,在工具箱中的图标是
在这里插入图片描述
在同一个容器中的多个RadioButton控件中,只能有一个RadioButton控件为选中状态。

Checked属性:单选按钮是否被选中,该值为True,表示被选中。

if(radioButton1->Checked)
  textBox1->Text=richTextBox1->SelectedText;

Appearance属性:当取值为Normal时,单选按钮选中状态为在这里插入图片描述
没有选中状态为在这里插入图片描述
当取值为Button时,外观看起来像标准的按钮,但工作方式类似于开关,选中状态为在这里插入图片描述
没有选中状态为
在这里插入图片描述
CheckedChanged事件:当Checked属性值发生改变时,触发该事件。
请添加图片描述

4.3.4.2 CheckBox

CheckBox控件又称为复选框,在工具箱中的图标是
在这里插入图片描述
在同一个容器中的多个CheckBox控件中,可以有多个CheckBox控件为选中状态。它们之间并不互相排斥。
ThreeState属性 若把该属性设置为True,则复选框就有如下三个CheckState 枚举值可选。
Checked:复选框有选中标记。
UnChecked:复选框没有选中标记。
Indeterminate:复选框为灰色显示。
请添加图片描述

4.3.5 列表框、组合框控件

4.3.5.1 ListBox

ListBox控件又称为列表框,在工具箱中的图标是
在这里插入图片描述
它允许用户从所列出的表项中进行单项或多项选择,被选择的项呈高亮度显示,列表框一般带有一个垂直滚动条。列表框分单选列表框和多重选择列表框两种。单选列表框一次只能选择一个列表项,而多重选择列表框可以选择多个列表项。
列表框的常用属性:
在这里插入图片描述
向列表框中添加项目的内容的方法:
向窗体中拖放一个列表框控件,选中该列表框,然后打开属性窗口,单击Items属性右侧的按钮,在弹出的字符串集合编辑器中输入各个项目的内容,输入结束后,单击确定按钮,这样在窗体中即可看到列表框中各个项的内容,如果项目较多,会自动添加一个垂直的滚动条
请添加图片描述
请添加图片描述

列表框的Items属性ListBox::ObjectCollection类表示。
该类的主要方法见下表所示
在这里插入图片描述
列表框的常用事件 :
当鼠标单击列表框中的某一项时会触发SelectIndexChanged事件
例 完成向列表框中添加项、删除项
添加项:

private: System::Void button1_Click_4(System::Object^  sender, System::EventArgs^  e) 
{
	listBox1->Items->Add(textBox1->Text); 
}

请添加图片描述
删除项:

private: System::Void button2_Click_3(System::Object^  sender, System::EventArgs^  e) 
{
    String^ s;
	s=listBox1->SelectedItem->ToString();
	listBox1->Items->Remove(s);
}

请添加图片描述
单击某一项显示该项的指针值:

int n;
String^ s;
n=listBox1->SelectedIndex;             
s= System::Convert::ToString(System::Convert::ToSingle(n)); 
//ToSingle将指定整数的值转换为等效的单精度浮点数字 
MessageBox::Show(s);

请添加图片描述

4.3.5.2 ComboBox

ComboBox控件又称为组合框,在工具箱中的图标是在这里插入图片描述
是文本框和列表框的组合,因此有与文本框和列表框相似的属性、方法、事件
在这里插入图片描述
添加项:

private: System::Void button1_Click_5(System::Object^  sender, System::EventArgs^  e) 
{
			 if((!comboBox1->Items->Contains(comboBox1->Text)))
                 comboBox1->Items->Add(comboBox1->Text);

}

请添加图片描述

4.3.6 进度条控件

ProgressBar控件又叫进度条控件,在工具箱中的图标是
请添加图片描述
该控件是在较长操作时间的状态下,告知用户正在进行某个操作,指示用户等待
ProgressBar控件常用属性如表所示

在这里插入图片描述

private: System::Void button1_Click_6(System::Object^  sender, System::EventArgs^  e) 
{
			 if(progressBar1->Value==progressBar1->Maximum)
                progressBar1->Value=0;
             else 
                progressBar1->Value=progressBar1->Value+5;
            //注意,每次加的值应该为Maxmun的因子
}

请添加图片描述

4.3.7 定时器控件

Timer控件也叫定时器控件,在工具箱中的图标是在这里插入图片描述
定时器的重要属性:
Interval设置定时器触发事件的间隔时间,单位是毫秒。
定时器的常用方法:

方法说明
Start()启动定时器
Stop()停止定时器

定时器的常用事件:
Tick事件:Interval属性设置后,启动定时器,每经过Interval指定时间会触发一次Tick事件。
例1:

private: System::Void timer1_Tick(System::Object^  sender, System::EventArgs^  e)
{
		 if(progressBar1->Value==progressBar1->Maximum)
             progressBar1->Value=0;
        else 
             progressBar1->Value=progressBar1->Value+5;
}
private: System::Void button1_Click_7(System::Object^  sender, System::EventArgs^  e) 
{
	    timer1->Start();
}
private: System::Void button2_Click_4(System::Object^  sender, System::EventArgs^  e) 
{
	    timer1->Stop();
}

例1 动态显示时间:

private: System::Void timer1_Tick(System::Object^  sender, System::EventArgs^  e) 
{
			 DateTime  currentTime ; 
	         currentTime= DateTime::Now;
             textBox1->Text=currentTime.ToString();
}
private: System::Void button1_Click_7(System::Object^  sender, System::EventArgs^  e) 
{
			 timer1->Start();
}
private: System::Void button2_Click_4(System::Object^  sender, System::EventArgs^  e)
{
			 timer1->Stop();
}

请添加图片描述

4.3.8 PictureBox控件

PictureBox控件用于显示图像,在工具箱中的图标是在这里插入图片描述
PictureBox控件常用属性
在这里插入图片描述

private: System::Void button1_Click_8(System::Object^  sender, System::EventArgs^  e) 
{
	pictureBox1->Image = Image::FromFile("C:\\图片\\6.jpg");
}
private: System::Void button2_Click_5(System::Object^  sender, System::EventArgs^  e) 
{
    pictureBox1->Load("C:\\图片\\1.jpg");
}

请添加图片描述

4.3.9 通用对话框

4.3.9.1 打开文件对话框

OpenFileDialog控件提供了一个Windows标准的打开文件对话框,在工具箱中的图标
在这里插入图片描述
用户可以使用打开文件对话框浏览计算机中的文件,并选择打开一个或多个文件
常用属性:
在这里插入图片描述
常用方法:
在这里插入图片描述
常用事件:
在这里插入图片描述

private: System::Void pictureBox1_Click(System::Object^  sender, System::EventArgs^  e) 
{
		 OpenFileDialog^ ofd=gcnew OpenFileDialog();
		 ofd->Filter="Bmp|*.bmp|jpg|*.jpg";
         if(ofd->ShowDialog()==System::Windows::Forms::DialogResult::OK && ofd->FileName->Length>0)
		 {
			 pictureBox1->Load(ofd->FileName);
		 }
}

请添加图片描述

4.3.9.2 保留文件对话框

SaveFileDialog控件用于保存文件的对话框,在工具箱中的图标是
在这里插入图片描述
常用的属性和OpenFileDialog控件大致相同。

private: System::Void pictureBox1_Click(System::Object^  sender, System::EventArgs^  e) 
{
	SaveFileDialog^ saveFileDialog1 = gcnew SaveFileDialog();
    saveFileDialog1->Filter = "txt files (*.txt)|*.txt|All files (*.*)|*.*";
    saveFileDialog1->FilterIndex = 2;
    saveFileDialog1->RestoreDirectory = true;
    saveFileDialog1->ShowDialog() ;
}
4.3.9.3 颜色对话框

ColorDialog控件,用于显示可使用的颜色和用户自定义的颜色,在工具箱中的图标是
在这里插入图片描述其常用属性见下表
在这里插入图片描述
方法

方法说明
ShowDialog运行通用对话框
ToString返回表示ColorDialog的字符串
private: System::Void button1_Click_9(System::Object^  sender, System::EventArgs^  e) 
{
			ColorDialog^ colorDialog = gcnew ColorDialog();
            colorDialog->AllowFullOpen = true;
            colorDialog->FullOpen = true;
           //自定义颜色控件在对话框打开时是否可见
	      colorDialog->ShowDialog();
          textBox1->BackColor=colorDialog->Color;
 }

请添加图片描述

4.3.9.4 字体对话框

FontDialog控件,用于选择本地计算机上安装的一种字体,在工具箱中的图标是
在这里插入图片描述
常用属性如下表:
在这里插入图片描述
例题:在窗体中通过使用通用对话框控件来控制富文本框中的内容及字体
在窗体的头文件中添加如下代码:

using namespace System::IO;

StreamReader类用于从文本文件中读取信息。
常用方法:
Read:读取一个字节或指定字节数
ReadLine:读取一行
ReadToEnd :读取到文件结束
Close:关闭数据流
Stream Writer类以特定的编码方式将字符写入流中
常用方法:
Write 将字符串写入流
Close关闭数据流

private: System::Void button1_Click_9(System::Object^  sender, System::EventArgs^  e) 
{
  openFileDialog1->InitialDirectory="C:\\Users\\HD\\OneDrive\\桌面\\22041327袁帅\\";
  openFileDialog1->Filter="文本文件(*.txt)|*.txt";
  if(openFileDialog1->ShowDialog()==Windows::Forms::DialogResult::OK)
  {
	 StreamReader ^str=gcnew StreamReader(openFileDialog1->FileName);
	 richTextBox1->Text=str->ReadToEnd();
	 str->Close();	
  }
}

打开
请添加图片描述

private: System::Void button2_Click_6(System::Object^  sender, System::EventArgs^  e)
 {
	if(saveFileDialog1->ShowDialog()==Windows::Forms::DialogResult::OK)
	{
	     StreamWriter ^str=gcnew StreamWriter(saveFileDialog1->FileName);
	     str->Write(richTextBox1->Text); 
		 str->Close();
	}
}

保存

请添加图片描述

private: System::Void button3_Click_1(System::Object^  sender, System::EventArgs^  e) 
{
			fontDialog1->ShowColor=true;//是否显示颜色选择
            if(fontDialog1->ShowDialog()==Windows::Forms::DialogResult::OK)
			{					
		         richTextBox1->Font=fontDialog1->Font; 
	             richTextBox1->ForeColor=fontDialog1->Color;					 
		   }
}

字体
请添加图片描述

private: System::Void button4_Click(System::Object^  sender, System::EventArgs^  e) 
{
	if(colorDialog1->ShowDialog()==Windows::Forms::DialogResult::OK)
	{					
         richTextBox1->ForeColor=colorDialog1->Color;					 
	}

}

颜色
请添加图片描述

4.3.10 菜单

MenuStrip控件也叫菜单控件,在工具栏中的图标是
在这里插入图片描述
Windows应用程序通常提供菜单,菜单包括各种基本命令,并按照主题分组。将MenuStrip控件添加到窗体后,它出现在Windows窗体设计器底部的栏中,同时在窗体的顶部将出现主菜单设计器

4.3.10.1 菜单项的设计

当菜单控件添加到窗体中以后,可以直接在标题栏下的菜单项中添加各个菜单项。
可以在属性窗口中单击菜单的Items属性右侧的按钮,打开项集合编辑器,在该编辑器中添加各个菜单项。
Items属性是ToolStrip类型的集合,该集合中可以包含所有从ToolStrip类派生的各种控件元素,有ToolStripMenuItem、ToolStripComboBox、ToolStripSepatator、ToolStripTextBox。
在将要添加菜单项的编辑框的右侧有个小下拉箭头,点中该箭头将显示ToolStrip类中的几种控件类型

请添加图片描述

请添加图片描述

4.3.10.2 分隔条

当二级菜单中选项较多时,可以使用分隔条将其分组。使得菜单结构更加清晰。在将输入的菜单项上输入一个“-”可以在选项的上面添加一个分隔条
请添加图片描述

4.3.10.2 访问键和快捷键

访问键(Access key):访问键是菜单项文字后面的括号中带下划线的字符,它是在菜单设计时定义的。在菜单项的标题文字后面加上一个由”&”引导的字母。即可完成访问键的设定。定义访问键后,运行时按下”ALT+访问键”,就相当于用鼠标单击了一下该菜单项。

快捷键(ShortCut key):设置每个菜单项时,在属性窗口”ShortCutKeys”属性右端,单击下拉箭头,就可在列表中选择一个合适的快捷键。
请添加图片描述
向窗体中添加控件,各个控件的属性如下表所示:
在这里插入图片描述

private: System::Void cLOSEToolStripMenuItem_Click(System::Object^  sender, System::EventArgs^  e) {

openFileDialog1->InitialDirectory="C:\\Users\\HD\\OneDrive\\桌面\\文本文件.txt";
openFileDialog1->Filter="文本文件(*.txt)|*.txt";
				 if(openFileDialog1->ShowDialog()==Windows::Forms::DialogResult::OK)
				 {
	                 StreamReader ^str=gcnew StreamReader(openFileDialog1->FileName);
		             richTextBox1->Text=str->ReadToEnd();
					 str->Close();
				 }
}
private: System::Void radioButton1_CheckedChanged_1(System::Object^  sender, System::EventArgs^  e) {
			 if (radioButton1->Checked == true)                
				  richTextBox1->Text += "学位:" + radioButton1->Text + "\n";	
		 }
private: System::Void radioButton2_CheckedChanged(System::Object^  sender, System::EventArgs^  e) {
			 if (radioButton2->Checked == true)
                 richTextBox1->Text += "学位:" + radioButton2->Text + "\n";
		 }
private: System::Void radioButton3_CheckedChanged(System::Object^  sender, System::EventArgs^  e) {
			 if (radioButton3->Checked == true)
                 richTextBox1->Text += "学位:" + radioButton3->Text + "\n";
}
private: System::Void textBox1_KeyPress(System::Object^  sender, System::Windows::Forms::KeyPressEventArgs^  e) {
			 if(e->KeyChar==13)           
				 richTextBox1->Text += "姓名:" + textBox1->Text + "\n";
			 //textBox1中有键按下时触发textBox1_KeyPress事件
		 }
private: System::Void 清除ToolStripMenuItem_Click(System::Object^  sender, System::EventArgs^  e) {
			 richTextBox1->Clear();
		 }
private: System::Void comboBox1_KeyPress(System::Object^  sender, System::Windows::Forms::KeyPressEventArgs^  e) {
			 if ((e->KeyChar==13)&&comboBox1->Text!="")
                 richTextBox1->Text+="性别:"+comboBox1->Text+"\n";
		 }
private: System::Void checkBox1_CheckedChanged_1(System::Object^  sender, System::EventArgs^  e) {
			  if (checkBox1->Checked == true)
                   richTextBox1->Text += "爱好:" + checkBox1->Text + "\n";

		 }
private: System::Void checkBox2_CheckedChanged(System::Object^  sender, System::EventArgs^  e) {
			 if (checkBox2->Checked == true)
                   richTextBox1->Text += "爱好:" + checkBox2->Text + "\n";
		 }
private: System::Void checkBox3_CheckedChanged(System::Object^  sender, System::EventArgs^  e) {
			 if (checkBox3->Checked == true)
                  richTextBox1->Text += "爱好:" + checkBox3->Text + "\n";

		 }
private: System::Void listBox1_SelectedIndexChanged_1(System::Object^  sender, System::EventArgs^  e) {
			 richTextBox1->Text+="专业:"+listBox1->SelectedItem+"\n";
		 }
private: System::Void comboBox1_SelectedIndexChanged_1(System::Object^  sender, System::EventArgs^  e) {
			 richTextBox1->Text += "性别:" + comboBox1->Text + "\n";
		 }
private: System::Void sAVESToolStripMenuItem1_Click(System::Object^  sender, System::EventArgs^  e) {
			 if(saveFileDialog1->ShowDialog()==Windows::Forms::DialogResult::OK)
				 {
                   StreamWriter ^str=File::CreateText(saveFileDialog1->FileName);
		           str->Write(richTextBox1->Text); 
		           str->Close();
				 }
		 }
private: System::Void 退出ToolStripMenuItem_Click(System::Object^  sender, System::EventArgs^  e) {
			 this->Close();
		 }
private: System::Void 新建ToolStripMenuItem_Click(System::Object^  sender, System::EventArgs^  e) {
			 richTextBox1->Clear();
		     textBox1->Clear();
		     comboBox1->Text="";
		 }
private: System::Void 复制ToolStripMenuItem_Click(System::Object^  sender, System::EventArgs^  e) {
			 richTextBox1->Copy();
		 }
private: System::Void 粘贴ToolStripMenuItem_Click(System::Object^  sender, System::EventArgs^  e) {
			 richTextBox1->Paste();

		 }
private: System::Void 剪切ToolStripMenuItem_Click(System::Object^  sender, System::EventArgs^  e) {
			 richTextBox1->Cut();
		 }
private: System::Void 撤销ToolStripMenuItem_Click(System::Object^  sender, System::EventArgs^  e) {
			 richTextBox1->Undo();
		 }
private: System::Void 替换ToolStripMenuItem_Click(System::Object^  sender, System::EventArgs^  e) {
         String^ str1 = richTextBox1->SelectedText;
         richTextBox1->SelectedText = str1->Replace("爱好", "擅长");
		 //richTextBox1->Show(str1);
			
}
private: System::Void 查找ToolStripMenuItem_Click(System::Object^  sender, System::EventArgs^  e) {
		int position = richTextBox1->Text->IndexOf("爱好");
        int startindex=position;
	   int nextindex = 0;  
	   if(position==0) nextindex=1;
       while (nextindex != startindex)
	   {  
		 richTextBox1->Select(position,2);        
		 richTextBox1->SelectionColor = Color::Blue;         
		 nextindex=richTextBox1->Find("爱好", position + 2,RichTextBoxFinds::WholeWord);  
         if (nextindex == -1)
                   nextindex =startindex;  
          position = nextindex;  
		}
}

视频

4.3.10.3 ContextMenuStrip控件

使用ContextMenuStrip控件可以建立快捷菜单,也称为上下文菜单,在工具箱中的图标是
在这里插入图片描述

设置某个控件的ContextMenuStrip属性,这样就把该特定控件和该上下文菜单联系起来,当用户在右击该控件时,就可显示该上下文菜单的各菜单项。选中其中一个菜单项,即可执行该菜单项的Click事件
我也不太懂…

五 综合应用——学生管理系统的设计

待更新…

### 回答1: vswindows桌面应用程序是一种使用C++编写的桌面应用程序开发工具,它可以帮助开发者快速构建高效、稳定的Windows桌面应用程序。该工具集成了丰富的开发工具和库,包括代码编辑器、调试器、图形界面设计工具、数据库连接器等,可以大大提高开发效率和代码质量。同时,vswindows桌面应用程序还支持多种编程语言,如C++、C#、VB等,可以满足不同开发者的需求。 ### 回答2: VsWindows桌面应用程序C是指使用Microsoft Visual Studio集成开发环境(IDE)和C编程语言,创建基于Windows操作系统的桌面应用程序。C语言是一种高级编程语言,被广泛用于系统级编程和硬件编程,因此非常适用于开发Windows应用程序。 VsWindows桌面应用程序C的开发过程涉及到程序设计、编码、编译和调试。使用Visual Studio可以轻松创建Windows窗体应用程序、控制台应用程序和DLL库等各种类型的应用程序Visual Studio提供了丰富的工具和功能,包括代码编辑器、调试器、自动完成、代码分析和测试工具等,使开发任务变得更加简单快捷。 C语言在Windows应用程序开发中扮演着非常重要的角色。对于Windows操作系统来说,C语言是固有的编程语言,许多核心功能都是使用C语言编写的,因此使用C语言编写Windows应用程序能够更好地利用操作系统的底层资源和API,从而实现更加高效和优质的应用程序。此外,C语言还具备良好的可移植性,可用于不同平台和操作系统中的应用程序开发。 总之,VsWindows桌面应用程序C是一种基于Visual Studio和C语言的Windows应用程序开发方法,其优点包括强大的功能和工具库、操作系统底层资源的利用、高效和可移植性等等。对于需要开发Windows桌面应用程序的开发者来说,使用VsWindows桌面应用程序C将会是一种非常可行和有趣的选择。 ### 回答3: VS(Visual Studio)是一款由微软公司开发的软件开发环境,它可以用于开发各种类型的应用程序,包括桌面应用程序。其中,C是一种高级程序设计语言,具有语法简洁、运行快速、可通用于多种操作系统等优点。因此,使用VS进行C语言桌面应用程序开发是非常常见的。 首先,VS提供了非常完善的C语言编译环境和调试工具,使得开发者能够方便地进行代码编写、编译和运行调试等工作。VS还包含一些预置的代码模板和代码段,可以加速开发者的开发进程。同时VS还提供了丰富的库函数,可以在开发过程中调用,使得开发者能够快速地实现各种功能需求。 其次,VS提供了非常友好的界面开发工具,使得C语言桌面应用程序的界面设计变得异常简单。开发者只需要在VS提供的拖拽式界面设计器中按照自己的需求进行界面设计,就可以快速地生成出美观、易用的桌面应用程序。 最后,在开发C语言桌面应用程序时,VS还包含了丰富的调试工具和性能分析工具,可以帮助开发者在开发过程中快速发现和解决各种程序缺陷和性能问题。 综上所述,VS为C语言桌面应用程序的开发提供了非常完善和便捷的工具支持,可以帮助开发者快速高效地完成开发工作,快速地实现功能需求,为用户提供更佳的用户体验。因此,VS是开发C语言桌面应用程序不可或缺的必备工具之一。
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值