几个常用的控件(2)

news2025/1/12 16:17:58

目录

一、单选按钮Radiobutton和RadioButtonList

1、Radiobutton控件

(1)button控制方式

(2)Radiobutton控制方式

2、RadiobuttonList控件

二、列表框ListBox和下拉列表DropdownList

1、ListBox

2、DropdownList

三、面板控件panel

四、日历

五、FileUpLoad

六、隐藏域HidderField


前面一篇中介绍了几个常用的控件,这篇继续学习常用的控件。

一、单选按钮Radiobutton和RadioButtonList

        前面简单的看了一下这两个控件长什么样子,下面我们试着用小例子来学习一下这两个的使用差别。

用例一:使用这些按钮来选择图片,该怎么操作呢?

1、Radiobutton控件

        首先,尝试使用单个按钮Radiobutton来实现:

拖动一个Image控件和四个Radiobutton控件,如下摆放:

控制使用哪个图片有两种方式,一种是直接加一个button,然后选择一个Radiobutton,点一下button,这种是比较繁琐的;另一种是直接修改每个Radiobutton的功能。但是作为初学者,一定不能选择跳过(说给我自己听的,以前跳过的太多后面后悔也不知道咋补了),下面先加一个button试试如何让他显示吧:

(1)button控制方式

双击button添加其功能:

        protected void Button3_Click(object sender, EventArgs e)
        {
            if (RadioButton1.Checked)
            {
                this.Image1.ImageUrl = "Images/1.png";
            }
            if (RadioButton2.Checked)
            {
                this.Image1.ImageUrl = "Images/2.png";
            }
            if (RadioButton3.Checked)
            {
                this.Image1.ImageUrl = "Images/3.png";
            }
            if (RadioButton4.Checked)
            {
                this.Image1.ImageUrl = "Images/4.png";
            }
        }

启动,然后运行一下试试:

 

 

 

我们可以看到,四张倒是都能显示,但是有一个大大的缺点就是,这个RadioButton一旦被选择,那么它就回不去了,即一直显示的是被选的状态。我们肯定不希望是这么个现象的,要怎么做才能不出现在这种问题呢,我们继续往下看。

(2)Radiobutton控制方式

删除Button控件,依次修改每个Radiobutton的功能:

 protected void RadioButton1_CheckedChanged(object sender, EventArgs e)
        {
            this.Image1.ImageUrl = "Image/1.png";
        }

 protected void RadioButton2_CheckedChanged(object sender, EventArgs e)
        {
            this.Image1.ImageUrl = "Image/2.png";
        }

protected void RadioButton3_CheckedChanged(object sender, EventArgs e)
        {
            this.Image1.ImageUrl = "Image/3.png";
        }

protected void RadioButton4_CheckedChanged(object sender, EventArgs e)
        {
            this.Image1.ImageUrl = "Image/4.png";
        }

这是我的想法,至于行不行呢,咱们边走边看吧:

好吧,确实不行,应该怎么用呢?不理解。。。。。(慢慢来吧)

先解决(1)中提到的问题吧。这时候就需要使用到RadiobuttonList控件。

2、RadiobuttonList控件

我们可以看到,默认状态下,该列表是竖向排列的,那么想要它横向排列,该怎么做呢?

只需要修改RadiobuttonList的属性RepeatDirection为horizontal即可。

 下面,按照要求进行修改它们的功能:

不加按钮的时候,怎么都不出来图片,这是为什么我不太理解。。。。。。

所以被迫加上按钮,就可以按照要求跳转了:

using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;

namespace WebApplication2
{
    public partial class WebForm1 : System.Web.UI.Page
    {
        protected void Page_Load(object sender, EventArgs e)
        {

        }

         protected void Button1_Click(object sender, EventArgs e)
         {
             string r = RadioButtonList1.SelectedItem.Text;
             if (r == "1")
             {
                 Image1.ImageUrl = "Images/1.png";
             }
             if (r == "2")
             {
                 Image1.ImageUrl = "Images/2.png";
             }
             if (r == "3")
             {
                 Image1.ImageUrl = "Images/3.png";
             }
             if (r == "4")
             {
                 Image1.ImageUrl = "Images/4.png";
             }
         }
        
    }
}

 

二、列表框ListBox和下拉列表DropdownList

        这两个控件基本上是一样的,但是显示的效果是不同的,ListBox是将所有选择都显示且可以多选,但是DropdownList一次只显示一个且一次只能选择一个。

1、ListBox

       

就是一个这样的框,在这个框里面可以添加很多的选择,例如:

运行显示就是这样子的:

前面说的可以多选,要多选的话就需要修改属性:SelectionMode,修改为Multiple,修改看看效果:

 按着Ctrl键,就可以多选了:

2、DropdownList

加上选择的话,一次只显示一个:

运行显示的样子(这个框拉的有点大了,哈哈哈哈,等会改小点):

        这是直接加上去的,后面也可以追加上去。使用的语句是DropDownList1.Items.Add("");

但是加的时候要注意,只能加一次,而不能每按一次就加一次,这时候,就可以用到以前使用过一次的IsPostBack。

protected void Page_Load(object sender, EventArgs e)
        {
            if (!IsPostBack)
            {
                DropDownList1.Items.Add("凉拌黄瓜");
                DropDownList1.Items.Add("西红柿炒鸡蛋");
            }
        }

单击button之后,就可以看到加上去的菜了:

下面按照上面的两种方式,选择之后,显示“你选择了:** ”

protected void Button2_Click(object sender, EventArgs e)
        {
            Label1.Text = "你选择了:";
            Label1.Text += ListBox1.SelectedItem.Text;
        }

protected void Button3_Click(object sender, EventArgs e)
        {
            Label2.Text = "你选择了:";
            Label2.Text += DropDownList1.SelectedItem.Text;
        }

但是,出现了一个错误,如果用列表框,选择之后,显示的是第一个选择的,这个应该怎么修改呢?

 暂时不清楚,等脑子清醒了在想吧。

如果有两个下拉列表,那么如何让它们联动呢?

我的想法是,将两个分别设置,但是有一个问题,就是有可能会错位,比如说我第一个设置的是省份,甘肃、新疆,市有定西、乌鲁木齐,如果选择错误的话就有可能出现新疆-定西这种情况。显然,这是错误的情况,所以设置的时候应该省份的时候,才去选择市。

先添加省份:

 

这里设置value是因为后面需要:

添加的时候发现这个会出错了,因为前面switch后面的字符型,所以需要修改成int型:

还是会出错:

为什么会出现这个错误呢?在课堂里也出现了这个错误,但是这个错误有时候却不会出现,所以这个需要再搜搜资料。

        注释掉这句话之后,发现我连前面的功能是错误的,首先,我设置是第一个下拉框的Value值,但是我前面写的是第二个下拉框的 value,所以是错的。最终的代码应该是如下的:

protected void DropDownList2_SelectedIndexChanged(object sender, EventArgs e)
        {
            DropDownList3.Items.Clear();
     
            switch (Convert.ToInt32(DropDownList2.SelectedValue))
            {
                case 0:
                    DropDownList3.Items.Add("定西");
                    DropDownList3.Items.Add("兰州");
                    DropDownList3.Items.Add("平凉");
                    break;
                case 1:
                    DropDownList3.Items.Add("乌鲁木齐");
                    DropDownList3.Items.Add("石河子");
                    DropDownList3.Items.Add("喀什");
                    break;
            }
        }

截图如下: 

下面就修改label的功能:

在这句话后面加一个+ "" 就可以正常运行了,先记住吧。。(后面又不能正常运行了,啊啊啊啊啊啊,真的是一阵一阵的,最后发现,首先要修改一下第一个下拉框,才能使用button控件,如果不设置,就会出现上面的错误,因为:不设置第一个的时候可能switch后面没值,所以根本无法判断是哪种情况,所以会错误)

protected void Button4_Click(object sender, EventArgs e)
        {
            Label3.Text = "你在:";
            Label3.Text += DropDownList2.SelectedItem.Text + DropDownList3.SelectedItem.Text + "";
        }

最终结果如下: 

 

三、面板控件panel

四、日历

就和平时我们看的日历一样,除此之外,可以通过自动套用格式来修改日历的样式:

五、FileUpLoad

        文件上传的时候我们通常会遇见这种控件,但是最终实现的操作还是双击设置的功能。

六、隐藏域HidderField

才开始学,先学习到核心的几个控件就好了,后面的这个知道有这个东西就好,以后用的时候再慢慢研究吧。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1534955.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

H3C技术大全复现之高级路由交换技术 1

华子目录 VLAN 基本技术VLANIEEE 802.1Q交换机端口类型MVRP协议实验测试 VLAN扩展技术Super VLAN产生背景Super vlan(相当于vlanif接口,也属于虚拟接口,可以充当网关)Sub vlan(普通vlan)关于代理ARP普通代理…

【c++入门】命名空间,缺省参数与函数重载

🔥个人主页: Quitecoder 🔥专栏:c笔记仓 朋友们大家好!本篇内容我们进入一个新的阶段,进入c的学习!希望我的博客内容能对你有帮助! 目录 1.c关键字2.第一个c代码3.命名空间3.1 nam…

python智慧农业小程序flask-django-php-nodejs

当今社会已经步入了科学技术进步和经济社会快速发展的新时期,国际信息和学术交流也不断加强,计算机技术对经济社会发展和人民生活改善的影响也日益突出,人类的生存和思考方式也产生了变化。传统智慧农业采取了人工的管理方法,但这…

导航栏还是侧栏?flutter 跨平台适配指南

介绍 引言:Flutter 的跨平台特性 Flutter 是由 Google 开发的一款跨平台应用开发框架,它具有许多优点,包括性能优异、开发效率高以及良好的用户体验等。其中,最引人注目的特性之一就是其出色的跨平台能力。通过编写一套代码&…

【SpringSecurity】十六、OAuth2.0授权服务器、资源服务器的配置(理论部分)

文章目录 0、OAuth2服务端结构1、授权服务配置2、授权服务器 ⇒ 配置客户端详情3、授权服务器 ⇒ 管理令牌配置4、授权服务器:配置端点访问的安全约束5、资源服务器配置 相关📕: 【OAuth2授权服务器配置完整Demo】 0、OAuth2服务端结构 OAu…

微信小程序分销返佣模式--小程序1-3级分销插件--小程序分销--

团购小程序是一种基于社区团购模式的电商平台,主要面向社区居民用户。 如果你想要开发一款分销团购小程序可以参考以下功能需求进行开发制作。 1、用户注册和登录 提供用户注册和登录功能,使用户能够创建和管理他们的账户。 2、会员管理 包括会员注…

sentinel使用控制台实现

1、添加依赖 <!--整合控制台--><dependency> <groupId>com.alibaba.csp</groupId> <artifactId>sentinel-transport-simple-http</artifactId> <version>1.8.0</version></dependency> 此项方法&#xff0…

【RPG Maker MV 仿新仙剑 战斗场景UI (六)】

RPG Maker MV 仿新仙剑 战斗场景UI 六 法术战斗窗口代码仿新仙剑效果 法术战斗窗口 这次来水点内容 由于之前已经做过了仿新仙剑的法术及物品窗口因此本次两篇内容&#xff0c;就来水点内容&#xff01;&#xff01;&#xff01; 由于帮助窗口之前已经做过&#xff0c;因此直接…

uniApp中使用小程序XR-Frame创建3D场景(1)环境搭建

1.XR-Frame简介 XR-Frame作为微信小程序官方推出的3D框架&#xff0c;是目前所有小程序平台中3D效果最好的一个&#xff0c;由于其本身针对微信小程序做了优化&#xff0c;在性能方面比其他第三方库都要高很多。 2.与Three.js的区别 做3D小程序的同学们对Three.js一定不陌生…

蓝桥杯STM32 G431 hal库开发速成——输入捕获

蓝桥杯的输入捕获较为简单&#xff0c;基本不涉及溢出的问题。所以这里就不介绍溢出了。文末有源码。 一、Cubemx配置 二、代码编写 1.在捕获回调函数中 void HAL_TIM_IC_CaptureCallback(TIM_HandleTypeDef *htim) {if(htim->InstanceTIM3){switch(count){case 1:{jishu1…

Mysql数据库的SQL语言详解

目录 一、数据库的基础操作 1、数据库的基本查看和切换 1.1 查看数据库信息 1.2 切换数据库 1.3 查看数据库中的表信息 1.4 查看数据库或数据库中表的结构&#xff08;字段&#xff09; 1.5 数据类型 1.5.1 整数型 1.5.2 浮点型(float和double) 1.5.3 定点数 1.5.4…

鸿蒙一次开发,多端部署(五)页面开发的一多能力介绍

本章介绍如何使用方舟开发框架“一多”能力&#xff0c;开发出在多设备上正常显示的页面。方舟开发框架推荐开发者使用声明式开发范式开发应用&#xff0c;故本章的内容和示例都主要基于声明式开发范式。本章主要包含如下内容&#xff1a; 布局能力 布局决定了页面中的元素按照…

Day75:WEB攻防-验证码安全篇接口滥用识别插件复用绕过宏命令填入滑块类

目录 图片验证码-识别插件-登录爆破&接口枚举 登录爆破 接口枚举 图片验证码-重复使用-某APP短信接口滥用 滑块验证码-宏命令-某Token&Sign&滑块案例 知识点&#xff1a; 1、验证码简单机制-验证码过于简单可爆破 2、验证码重复使用-验证码验证机制可绕过 3、…

九、C#桶排序算法

简介 桶排序是一种线性时间复杂度的排序算法&#xff0c;它将待排序的数据分到有限数量的桶中&#xff0c;每个桶再进行单独排序&#xff0c;最后将所有桶中的数据按顺序依次取出&#xff0c;即可得到排序结果。 实现原理 首先根据待排序数据&#xff0c;确定需要的桶的数量。…

pycharm中的Mark Directory As 里的 Sources Root、Excluded...

这里主要提到两个文件夹的作用&#xff0c;分别是Sources Root、Excluded 1、Sources Root 1、场景 平时使用pycharm&#xff0c;有时出现导包问题&#xff0c;将那个目录Mark Directory as sources root&#xff0c;然后就可以正常运行代码了 2、原理 其实主要就是将那个目录…

算法沉淀——贪心算法七(leetcode真题剖析)

算法沉淀——贪心算法七 01.整数替换02.俄罗斯套娃信封问题03.可被三整除的最大和04.距离相等的条形码05.重构字符串 01.整数替换 题目链接&#xff1a;https://leetcode.cn/problems/integer-replacement/ 给定一个正整数 n &#xff0c;你可以做如下操作&#xff1a; 如果…

Svg Flow Editor 原生svg流程图编辑器(三)

系列文章 Svg Flow Editor 原生svg流程图编辑器&#xff08;一&#xff09; Svg Flow Editor 原生svg流程图编辑器&#xff08;二&#xff09; Svg Flow Editor 原生svg流程图编辑器&#xff08;三&#xff09; 实现对齐辅助线 在 logicFlow 中&#xff0c;辅助线的实现是通…

《云计算:数字时代的引擎》

在数字化时代&#xff0c;云计算技术以其强大的计算能力和灵活的应用方式&#xff0c;成为推动各行各业发展的引擎。本文将围绕云计算的技术进展、技术原理、行业应用案例、面临的挑战与机遇以及未来趋势进行详细探讨。 云计算的技术进展 云计算的技术进展涵盖了多个方面&…

Spring框架本身自带的一些好用的工具类

1 Assert 很多时候&#xff0c;我们需要在代码中做判断&#xff1a;如果不满足条件&#xff0c;则抛异常。 有没有统一的封装呢? 其实Spring给我们提供了Assert类&#xff0c;它表示断言。 1.1 断言参数是否为空 断言参数是否空&#xff0c;如果不满足条件&#xff0c;则…

Day23 集合

Day23 集合 一、含义 集合是Java API所提供的一系列类&#xff0c;可以用于动态存放多个对象 (集合只能存对象)集合与数组的不同在于&#xff0c;集合是大小可变的序列&#xff0c;而且元素类型可以不受限定&#xff0c;只要是引用类型。(集合中不能放基本数据类型&#xff0c…