我想做一个 windows form上面2个按钮一个textbox,当点击按钮一,textbox中的内容变为一个超级链接,点击按钮2 textbox中的内容变会原来的样子,老板天天催着要,大家帮帮我啊。

解决方案 »

  1.   

    windows form上面2个按钮一个textbox一个LinkButton(初始状态隐藏),当点击按钮一,textbox隐藏LinkButton显示,点击按钮2 textbox显示LinkButton隐藏.变通一下嘛,干嘛非得用2个按钮一个textbox来实现呢
      

  2.   

    问题的关键是textbox.text是从另外的页面传过来的 可能有很多东西,所以LinkButton必须是按照某种条件动态生成的,可是textbox(我已经将他设置为多行)的框就那么大一点,放不下怎么办呢,主要是我需要改变的textbox中的内容使他在普通的字与超级链间切换,有点类似于word中你按下ctrl那么选中的文本就会变成超级链接 而松开就会回复到原来的样子,谢谢大家
      

  3.   

    也就是说如果使用LinkButton,那么至少从外观上看LinkButton是要处在textbox.text这个位置的,要让使用者认为他们点击的超级链接是textbox中的内容,可是如果textbox(多行)中有4行内容并且第一行链到163.com第二行链到sohu.com,那我不是至少要生成4个LinkButton并且让他们同时出现在textbox。text中4行对应位置,可是如果textbox的显示只能显示到3行,那么第4个LinkButton放在那里,LinkButton又不能随着textbox得内容往下移动,不是跑到外面去了吗
      

  4.   

    必须用textbox么,用iframe好像可以实现你想要的功能阿,
    让两个button连接不同的地址,都是显示在iframe里,你试试!
      

  5.   

    可以用PANEL,隐藏域,设置两个BUTTON分别显示不同内容
      

  6.   

    不难 关键是要掌握思想方法
    首先保证textbox和button1/2都是对form可见和可引用的;
    然后定义button1的onclick事件函数,在函数中给textbox.value/text赋值,赋值前要保存当前值到某个临时变量;
    定义button2的事件函数,函数中给textbox.value/text赋值为上面的临时变量;
    然后就可以了
    对于JS和C#(asp.net)同样适用
      

  7.   

    这个问题真有点难,按道理说文本框内不可以有超链接。可以换种思路用listbox控件解决,text值显示内容。value值存储链接地址
      

  8.   

    如果是要把TextBox变成一个HypeLink,就用设置Visible属性做吧,
    如果是要把TextBox中的值改成一个超级连接地址,那就在按钮事件中先把TextBox的值保存在一个变量中,再修改成原来保存的值,应该没有什么问题的呀
      

  9.   

    首先谢谢大家的帮助,可能我的意思没有表达清楚,按钮1/2只是控制TextBox中的内容是否变为超级链接的样子,当你真正想要跳转的时候点击的是TextBox中的内容,麻烦大家有代码片断的发一个上来 我才学这个不久
      

  10.   

    关键是要求textbox中的字要变样子,变成超级链接的样子
      

  11.   

    1. 用Container封装一个textbox和一个HyperLink,按钮1点击时显示HyperLink,点按钮2时显示textbox;
    2. textbox用Font属性将字体设置下划线,用Cursor属性将鼠标设置为手型,事件OnMouseHover出发地(伪装外观),并重写btn1/2的事件控制函数;
      

  12.   

    如果是winform用richTextBox控件.
    默认属性 DetectUrls = false; private void button1_Click(object sender, System.EventArgs e)
    {
    this.richTextBox1.DetectUrls = true; 
    this.richTextBox1.LinkClicked +=new LinkClickedEventHandler(richTextBox1_LinkClicked);

     
    }
    private void button2_Click(object sender, System.EventArgs e)
    {
    this.richTextBox1.DetectUrls = false;
     
      
    }
    private void richTextBox1_LinkClicked(object sender, LinkClickedEventArgs e)
    {
        System.Diagnostics.Process.Start(e.LinkText);
    }前提文框枉中的值为http:// 格式
      

  13.   

    打个比方:
    当从上一页传来3个超连接的地址,这时候,你在页面上放一个textbox存放着,同时根据3个的条件来动态生成3个HyperLink,把3个HyperLink.Visible=False隐蔽起来.(HyperLink可以放在panel里)
    当第击一按钮时,显示textbox,隐藏HyperLink,
    点另一按钮,显示HyperLink,隐藏textbox
      

  14.   

    谢谢大家的帮助,问题已经解决,方法与慕白兄的很接近,使用了richtextbox,不过就像慕白兄所说的richtextbox只识别格式为http的所以 重写了richtextbox中的一些事件,我想很多人误解了我的意思,我的目的是选中textbox中的一段文本(不是全部哦)点击按钮一选中的变为超级链接,并且点击这个超级链接可以触发事件,点击按钮2后一切还原,同时还感谢stkm的方法,就到这里了给分,结贴,如果有人也需要,可以说一声,我已经将其写成了一个自定义空间
      

  15.   

    是么 恭喜你 能不能发给我学习一下 好奇~谢谢[email protected]
      

  16.   

    学习,请发ey21cn#163.com  #改为@谢谢
      

  17.   

    能不能发我一份啊,[email protected]