首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >当鼠标点击时改变面板的颜色?

当鼠标点击时改变面板的颜色?
EN

Stack Overflow用户
提问于 2012-08-11 07:31:22
回答 2查看 3.8K关注 0票数 0

我是visual C#的新手

我想做一个门票预订系统(像在电影院),我已经创建了使用面板的座位,每个座位是40 * 40

下面是我的代码:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
private void panel2_Paint(object sender, PaintEventArgs e)
{
    int a, b;

    for (a = 0; a <= 1; a++)
    {
        for (b = 0; b < 12; b++)
        {

            Graphics g = e.Graphics;
            g.FillRectangle(new SolidBrush(Color.White), b * 40, a * 40, 40, 40);
            g.DrawRectangle(new Pen(Color.Black), b * 40, a * 40, 40, 40);

        }
    }
}

现在,我想通过鼠标单击来更改每个座位的颜色,以显示选择了哪个座位;但到目前为止还没有成功

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2012-08-11 19:11:05

您最好为每个选定的座位创建单独的控件,并处理它们的Click事件。在本例中,我向Panel添加了24个PictureBox's。然后,我将它们的索引放在控件的Tag属性中,并附加了一个通用的单击事件处理程序。我还使用了一个Bool数组来跟踪选定的状态。

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
public partial class Form1 : Form
{
    bool[] selected = new bool[24];
    public Form1()
    {
        InitializeComponent();
        foreach (PictureBox  pb in panel1.Controls)
        {
            pb.Click += new EventHandler(pictureBox_Click);
        }
    }

    private void pictureBox_Click(object sender, EventArgs e)
    {
        PictureBox pb = (PictureBox)sender;
        int index ;
        if (int.TryParse(pb.Tag.ToString(), out index))
        {
            if (selected[index])
            {
                selected[index] = false;
                pb.BackColor = Color.White;
            }
            else
            {
                selected[index] = true;
                pb.BackColor = Color.Red;
            }
        }
    }
}

如果您创建了一个布尔数组来存储座椅的状态,使用面板的MouseDown事件来设置变量,并使与座椅关联的屏幕矩形无效,则可以使用您所拥有的。

就像这样。

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
public partial class Form1 : Form
{
    bool[,] selected = new bool[2,12];
    public Form1()
    {
        InitializeComponent();
    }

    private void panel1_Paint(object sender, PaintEventArgs e)
    {
        int a, b;

        for (a = 0; a <= 1; a++)
        {
            for (b = 0; b < 12; b++)
            {

                if (selected[a, b])
                {
                    e.Graphics.FillRectangle(new SolidBrush(Color.Red), b * 40, a * 40, 40, 40);

                }
                else
                {
                    e.Graphics.FillRectangle(new SolidBrush(Color.White ), b * 40, a * 40, 40, 40);
                }
                e.Graphics.DrawRectangle(new Pen(Color.Black), b * 40, a * 40, 40, 40);

            }
        } 

    }

    private void panel1_MouseDown(object sender, MouseEventArgs e)
    {
        int xPos, yPos;
        xPos = e.X / 40;
        yPos = e.Y / 40;

        if ((xPos > 11) || (yPos > 1)) return;

        if(selected[yPos,xPos])
            selected[yPos, xPos] = false;
        else
            selected[yPos, xPos] = true;

        ((Panel)sender).Invalidate(new Rectangle(xPos * 40,yPos *40,40,40)) ;
    }
}
票数 1
EN

Stack Overflow用户

发布于 2012-08-11 07:41:49

无需使用Graphics对象并直接绘制到窗体,只需在触发OnMouseClick事件时设置与所选座位相对应的控件的BackColor属性即可。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/11912895

复制
相关文章
css 去色_css按钮点击改变颜色
网站设计师在设计网页时,有时将一块图片设计成灰色,鼠标移上去,图片就有颜色。一般的逻辑是做两张图片,然后在鼠标上做图片切换事件。当然这种方法可以完美是实现,
全栈程序员站长
2022/11/08
3.5K0
小程序鼠标点击按钮(改变背景颜色字体)
目标需求:实现下图,给点击的view增加类,每次只能选择一个。 主要思路:给点击的view增加类,依靠点击的index对state进行赋值。如果相同时,给该view增加类。
王小婷
2018/12/28
3.9K0
Input 在输入点击时去掉自带的颜色边框
input标签在输入点击时会自带一个颜色边框,那怎么去掉呢? 只需要一个outline属性就可以了
Alone88
2019/10/22
2.5K0
jquery改变链接移上光标时的颜色实例
效果体验http://hovertree.com/texiao/jquery/18/
全栈程序员站长
2022/07/15
1.2K0
微信小程序实现点击改变icon的颜色样式
通过bindtap 来改变元素是否显示。 1.小程序点击改变样式最好不要用 if else方式去判断来实现,这样类似VUE的写法实现不了。
用户4344670
2019/11/05
4.6K0
改变UITextField的光标颜色
版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/u010105969/article/details/52984966
用户1451823
2018/09/13
3.6K0
改变UITextView的边框颜色
版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/u010105969/article/details/51086444
用户1451823
2018/09/13
2.1K0
VUE点击颜色选中
? ?
阿强Wwlt
2018/08/01
8270
VUE点击颜色选中
改变QLabel背景颜色
在桌面应用程序开发时,需要显示一些状态信息,例如客户端是否掉线,串口是否打开等,我们可以用一些标志显示给用户,例如如果QLabel显示绿色,表示连接成功,显示黑色表示失败。
全栈程序员站长
2022/09/06
4.6K0
改变QLabel背景颜色
当鼠标按下时拖动元素,简单的JS实现
通过一个布尔值作为是否移动的标志,按下时为TRUE,代表跟随移动,鼠标松开为FALSE,代表不跟随移动,鼠标移动时改变元素偏移量。
房东的狗丶
2023/02/17
3.8K0
vue列表点击切换颜色
*HTML代码块* <div class='box' v-for="( item,index) in list" :class='{activeindex==index ? 'box2' :
kirin
2020/09/29
2.4K0
vue列表点击切换颜色
Black Vendetta -改变主题颜色
其实不是很喜欢换主题每次换主题都会需要折腾很多的后续问题。虽然这个主题和上个主题是从同一个模板修改过来的。但是鉴于Artisteer 4不能直接编辑css文件,每次修改完了都需要重新调校很多的东西,所以换主题就成了一件很蛋疼的事情,并且有很多功能都是通过修改主题生成的php文件直接得到的。
obaby
2023/02/23
5250
鼠标移动,改变DataGrid颜色
Sub DataGrid1_ItemDataBound(ByVal sender As Object, ByVal e As System.Web.UI.WebControls.DataGridItemEventArgs)
Java架构师必看
2021/03/22
2.2K0
CSS改变input光标颜色
我们可能会有改变input光标颜色的需求,谷歌浏览器的默认光标颜色是黑色的,我们可以看到GitHub上的光标却是白色,那么这个用CSS怎么改变呢? 这种效果有两种实现方式: 1.使用color来实现
kai666666
2020/10/17
3.6K0
storyboard中改变TabBar的字体颜色
一、用storyboard建立的Tab bar,不能改变它的字体颜色。 如果用storyboard建立TabBarController,那么想要选择Bar Tint改变字体的颜色是不行滴。这时候,应该新建一个新的类“RetabBar”继承自TabBar。 在.h文件中声明属性 @interface RetabBar : UITabBar @property (nonatomic, strong)IBInspectable UIColor *tabBartintColor; @end 在这段代码中的“IB
谦谦君子修罗刀
2018/05/02
4.1K0
storyboard中改变TabBar的字体颜色
C语言怎么改变窗口的字体颜色和背景颜色?
如果学C语言久了,难免会对弹出的黑窗口感到厌烦,那这时候如果能改一下黑窗口的背景颜色和字体颜色,也许会给自己一个好一点的心情。废话不多说,现在开始教你怎么简单地改变窗口的字体颜色和背景颜色。
全栈程序员站长
2022/09/06
6K0
C语言怎么改变窗口的字体颜色和背景颜色?
python IDLE 改变窗口背景颜色
初学Python,想必大家拿来练习最多的IDE就是Python自带的IDLE了,但是默认的代码配色及语法高亮主题确实很不适应。
马三小伙儿
2018/09/12
4K0
python IDLE 改变窗口背景颜色
ug图改变颜色_unity改变image透明度
大家好,又见面了,我是你们的朋友全栈君。 UGUI 图片将其他颜色去除,显示灰色图片
全栈程序员站长
2022/09/30
1.3K0
当鼠标聚焦时输入框变色(focus事件实例)
图片.png 当鼠标聚焦时输入框变色 css相关,鼠标点击<input>输入域后出现有颜色的边框 原理:css伪类之input输入框鼠标点击边框变色效果 伪类元素的使用::focus 一:当输入框获得焦点时,改变它的背景色 效果图:当鼠标聚焦时输入内部填充色改变 图片.png <!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title>鼠标点击<input>输入域后出现有颜色的边框</title> <style type="text/css"
王小婷
2018/05/31
4.6K0
点击时扩散效果
  <style> p { margin: 0; position: relative; padding: 60px 30px; background-color: orange; color: #fff; width: 200px; overflow: hidden; text-align: center; border: 20px solid #000; } i { position: absolute; widt
ProsperLee
2018/10/24
1K0

相似问题

当鼠标在java中点击时,如何改变颜色?

12

当鼠标移动时,如何改变按钮的颜色?

13

点击时改变图像颜色

11

点击时改变锚的颜色?

30

当鼠标移动时,边框不会改变颜色。

110
添加站长 进交流群

领取专属 10元无门槛券

AI混元助手 在线答疑

扫码加入开发者社群
关注 腾讯云开发者公众号

洞察 腾讯核心技术

剖析业界实践案例

扫码关注腾讯云开发者公众号
领券
社区富文本编辑器全新改版!诚邀体验~
全新交互,全新视觉,新增快捷键、悬浮工具栏、高亮块等功能并同时优化现有功能,全面提升创作效率和体验
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
查看详情【社区公告】 技术创作特训营有奖征文