【问题标题】:How to link buttons in visual studio with c#?如何用 C# 链接 Visual Studio 中的按钮?
【发布时间】:2015-11-26 17:32:52
【问题描述】:

我只是想要这样,每当我点击按钮 1 时,也应该点击按钮 2。

那我该怎么做呢?

实际上,我有一个 Windows 应用程序表单,并在表单中插入了一个 Web 浏览器。表单 URL 是一些 facebook 页面链接。所以我想用我自己创建的按钮(按钮 1)来喜欢那个页面。请指导我如何使用 C# 来做到这一点

这张图片可以解释我的问题

【问题讨论】:

  • 仅使用WebBrowser 时,我想出的唯一解决方案是解析加载的 HTML 以检测 facebook “Like”-Button,然后解析 href 属性的位置按钮,并让您的WebBrowser 在单击您的应用程序大“喜欢”按钮时转到该链接。就我而言,WebBrowser 控件没有一个方便的功能可以让您检测加载网页中的所有按钮/链接。您必须模拟按钮按下。您也可以将 Like-Button 指向的 URL 的链接硬编码,然后在按下按钮后跳转到该页面。
  • 对不起先生,我听不懂你的意思..

标签: c# facebook button


【解决方案1】:

考虑以下表单,其背景中只有一个网络浏览器和一个简单的蓝色按钮。

OnLoad() 函数中,我们导航到 facebook 页面。当按下“Like”按钮时,将搜索所有 HTML 按钮以查找其class-attribute 包含“PageLikeButton”的按钮。当找到那个like按钮时,click()函数就会在它上面执行。

using System;
using System.Windows.Forms;

namespace FacebookLiker
{
    public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();
        }

        private void Form1_Load(object sender, EventArgs e)
        {
            //Go to that link
            webBrowser1.Url = new Uri("https://www.facebook.com/haadischool/?fref=ts");

        }

        private void btnLike_Click(object sender, EventArgs e)
        {
            //Scan the facebook page for a like button

            foreach(HtmlElement button in webBrowser1.Document.GetElementsByTagName("button"))
            {
                //Is this the like button?
                if (button.GetAttribute("className").Contains("PageLikeButton"))
                {
                    //yes, simulate the click!
                    button.InvokeMember("click");
                }
            }
        }
    }
}

如您所见,当我访问该页面时没有喜欢它:

点击表单的“赞”按钮后:

当然,这个简单的演示应该被增强以处理根本没有“Like”按钮的情况,你可以通过挂钩WebBrowserDocumentCompleted事件来做到这一点,然后搜索“Like” “-那里的按钮。您还可以检测该页面是否已被喜欢。在这种情况下,您要搜索的 class 属性将是“PageLikedButton”(“like”的过去时)。

【讨论】:

  • 非常感谢先生,非常感谢您,您解决了我的大问题。
  • 如果对您有帮助,您可以将答案标记为正确。
  • 先生,我希望如果我不喜欢该页面,它应该是计数的,所以我怎样才能做到...请帮助我先生
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-07-02
  • 2012-03-07
  • 2021-12-28
  • 1970-01-01
  • 2016-10-18
相关资源
最近更新 更多