C# 简单问题

yangjiang113 2009-09-17 06:17:07

1、有4张图片。从上往下 1,2,3,4代号

1、有4个复选框

要求:当我把4个都勾上上时4个全部显示,如果我只勾上第一个那么就显示第一个,如果我只勾上第二个那么就显示第二个,这很简单,问题来了 我如果只选了第二个那么我要把第二个勾上时,我要把第二个显示在第一个的位置。如果我选了第二个和第四个的话,那么现在的顺序就是(2,4),也就是第二个现在要显示在最上面,第四个显示在第二个的位置上,一次类推。就是这样的。
希望大家尽量的能给出code
我的邮箱yangjiang113@126.com
...全文
213 24 打赏 收藏 转发到动态 举报
写回复
用AI写文章
24 条回复
切换为时间正序
请发表友善的回复…
发表回复
yangjiang113 2009-09-18
  • 打赏
  • 举报
回复
谢谢各位!不行就结贴了
gwenfeng1314 2009-09-18
  • 打赏
  • 举报
回复
学习中 帮顶~
CsToD 2009-09-18
  • 打赏
  • 举报
回复
看不到图,用你说得方法也看不到图
abcdef1111111 2009-09-18
  • 打赏
  • 举报
回复
不懂,帮顶吧
yangjiang113 2009-09-18
  • 打赏
  • 举报
回复
怎么没人回帖呀?
yangjiang113 2009-09-18
  • 打赏
  • 举报
回复
谢谢各位的积极,结贴去。任在追寻答案
Terran5 2009-09-18
  • 打赏
  • 举报
回复
图片都看不见啊
sww5219999 2009-09-18
  • 打赏
  • 举报
回复
要想做的完美点就写一个公用方法 4个多选框选中和取消时都去调用这个公用方法

公用方法逻辑很简单,判断一共选中几个,然后把选中的复选框对应的图片地址循环加载到4个image上就行,有几个就显示几个,这样更人性化一些。
sww5219999 2009-09-18
  • 打赏
  • 举报
回复
标志位i=1

选中 复选框1
取得1号复选框的图片地址 path1 然后显示第一个图片控件,使他的图片地址等于path1(标志位i++,记录下一个图片该显示的位置
选中 复选框3
取得3号复选框的图片地址 path3 然后显示第二个图片控件(i的位置),使他的图片地址等于path3

以此类推就可以。





yyhlian 2009-09-18
  • 打赏
  • 举报
回复
看看grideview 72 般绝技 百度。。
sww5219999 2009-09-18
  • 打赏
  • 举报
回复
我机器上没有。net IDE 思路不知道你看懂没?看懂就应该能写出来啊。
yangjiang113 2009-09-18
  • 打赏
  • 举报
回复
[Quote=引用 17 楼 sww5219999 的回复:]
代码不写了 给你个思路, 定义4个图片控件image排好(隐藏),然后定义4个变量指向4个图片的地址属性,当然这4个属性的顺序和你的多选框的顺序是相同的,然后判断你选中了哪几个号,取得对应号的地址变量,再依次从上到下显示在4个图片控件上就行(选中几个显示几个)。
[/Quote]
希望大侠能写下code好人做到底嘛
sww5219999 2009-09-18
  • 打赏
  • 举报
回复
代码不写了 给你个思路, 定义4个图片控件image排好(隐藏),然后定义4个变量指向4个图片的地址属性,当然这4个属性的顺序和你的多选框的顺序是相同的,然后判断你选中了哪几个号,取得对应号的地址变量,再依次从上到下显示在4个图片控件上就行(选中几个显示几个)。
Lovely_baby 2009-09-18
  • 打赏
  • 举报
回复
用Js控制
把checkbox设为IsPostBack设一下
试试吧
yangjiang113 2009-09-18
  • 打赏
  • 举报
回复
[Quote=引用 13 楼 gisyellow 的回复:]
        private void ResetBoxLocation()
        {
            //不用判断第一个图片的位置,仅控制可见性即可
            //关键是在各图片的Tag属性中记录初始位置,即都显示时的位置
            pictureBox1.Visible = checkBox1.Checked;
            pictureBox2.Visible = checkBox2.Checked;
            pictureBox3.Visible = checkBox3.Checked;
            pictureBox4.Visible = checkBox4.Checked;

            if (checkBox2.Checked)
            {
                if (checkBox1.Checked)
                {
                    pictureBox2.Location = (Point)pictureBox2.Tag;
                }
                else
                {
                    pictureBox2.Location = (Point)pictureBox1.Tag;
                }
            }

            if (checkBox3.Checked)
            {
                if (checkBox1.Checked && checkBox2.Checked)
                {
                    pictureBox3.Location = (Point)pictureBox3.Tag;
                }
                else if (!checkBox1.Checked && !checkBox2.Checked)
                {
                    pictureBox3.Location = (Point)pictureBox1.Tag;
                }
                else
                {
                    pictureBox3.Location = (Point)pictureBox2.Tag;
                }
            }

            if (checkBox4.Checked)
            {
                if (checkBox1.Checked && checkBox2.Checked && checkBox3.Checked)//前三个都显示
                {
                    pictureBox4.Location = (Point)pictureBox4.Tag;
                }
                else if (!checkBox1.Checked && checkBox2.Checked && checkBox3.Checked)//仅第一个不显示
                {
                    pictureBox4.Location = (Point)pictureBox3.Tag;
                }
                else if (checkBox1.Checked && !checkBox2.Checked && checkBox3.Checked)//仅第二个不显示
                {
                    pictureBox4.Location = (Point)pictureBox3.Tag;
                }
                else if (checkBox1.Checked && checkBox2.Checked && !checkBox3.Checked)//仅第三个不显示
                {
                    pictureBox4.Location = (Point)pictureBox3.Tag;
                }
                else if (checkBox1.Checked && !checkBox2.Checked && !checkBox3.Checked)//第二个和第三个不显示
                {
                    pictureBox4.Location = (Point)pictureBox2.Tag;
                }
                else if (!checkBox1.Checked && !checkBox2.Checked && checkBox3.Checked)//第二个和第一个不显示
                {
                    pictureBox4.Location = (Point)pictureBox2.Tag;
                }
                else if (!checkBox1.Checked && checkBox2.Checked && !checkBox3.Checked)//第一个和第三个不显示
                {
                    pictureBox4.Location = (Point)pictureBox2.Tag;
                }
                else if (!checkBox1.Checked && !checkBox2.Checked && !checkBox3.Checked)//前三个都不显示
                {
                    pictureBox4.Location = (Point)pictureBox1.Tag;
                }
            }

        }C# code
[/Quote]
怎么我用了 报错啊?能否给予解决?
yangjiang113 2009-09-18
  • 打赏
  • 举报
回复
谢谢各位,待会我试下。希望有不同意见的继续提出来
gisyellow 2009-09-18
  • 打赏
  • 举报
回复
private void ResetBoxLocation()
{
//不用判断第一个图片的位置,仅控制可见性即可
//关键是在各图片的Tag属性中记录初始位置,即都显示时的位置
pictureBox1.Visible = checkBox1.Checked;
pictureBox2.Visible = checkBox2.Checked;
pictureBox3.Visible = checkBox3.Checked;
pictureBox4.Visible = checkBox4.Checked;

if (checkBox2.Checked)
{
if (checkBox1.Checked)
{
pictureBox2.Location = (Point)pictureBox2.Tag;
}
else
{
pictureBox2.Location = (Point)pictureBox1.Tag;
}
}

if (checkBox3.Checked)
{
if (checkBox1.Checked && checkBox2.Checked)
{
pictureBox3.Location = (Point)pictureBox3.Tag;
}
else if (!checkBox1.Checked && !checkBox2.Checked)
{
pictureBox3.Location = (Point)pictureBox1.Tag;
}
else
{
pictureBox3.Location = (Point)pictureBox2.Tag;
}
}

if (checkBox4.Checked)
{
if (checkBox1.Checked && checkBox2.Checked && checkBox3.Checked)//前三个都显示
{
pictureBox4.Location = (Point)pictureBox4.Tag;
}
else if (!checkBox1.Checked && checkBox2.Checked && checkBox3.Checked)//仅第一个不显示
{
pictureBox4.Location = (Point)pictureBox3.Tag;
}
else if (checkBox1.Checked && !checkBox2.Checked && checkBox3.Checked)//仅第二个不显示
{
pictureBox4.Location = (Point)pictureBox3.Tag;
}
else if (checkBox1.Checked && checkBox2.Checked && !checkBox3.Checked)//仅第三个不显示
{
pictureBox4.Location = (Point)pictureBox3.Tag;
}
else if (checkBox1.Checked && !checkBox2.Checked && !checkBox3.Checked)//第二个和第三个不显示
{
pictureBox4.Location = (Point)pictureBox2.Tag;
}
else if (!checkBox1.Checked && !checkBox2.Checked && checkBox3.Checked)//第二个和第一个不显示
{
pictureBox4.Location = (Point)pictureBox2.Tag;
}
else if (!checkBox1.Checked && checkBox2.Checked && !checkBox3.Checked)//第一个和第三个不显示
{
pictureBox4.Location = (Point)pictureBox2.Tag;
}
else if (!checkBox1.Checked && !checkBox2.Checked && !checkBox3.Checked)//前三个都不显示
{
pictureBox4.Location = (Point)pictureBox1.Tag;
}
}

}

快40的码农 2009-09-18
  • 打赏
  • 举报
回复
换个思路:
界面上放4个image控件,根据选择情况重新改变image的图片路径
这样应该能解决
redleafe 2009-09-17
  • 打赏
  • 举报
回复
帮顶
yangjiang113 2009-09-17
  • 打赏
  • 举报
回复
[Quote=引用 2 楼 sql77 的回复:]
好像是控件移动问题,不太懂学习
[/Quote]
嗯!是移动空间
加载更多回复(3)

110,539

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧