Добрый день. Пробую написать программу с библиотекой VkNet. Простой мессенджер, который позволит отправлять и получать сообщение друзьям ВКонтакте.
------------------------------------
Небольшой апдейт вопроса.
Было решено поместить все что связано с VkNet в отдельный класс.
using System;
using System.Windows.Forms;
using VkNet;
using VkNet.Enums.Filters;
using VkNet.Exception;
namespace vkmessenger
{
public class Auth
{
VkApi vk = new VkApi();
Settings scope = Settings.All;
public void GetAuth(string login,string pass, int AppID)
{
try
{
vk.Authorize(new ApiAuthParams
{
ApplicationId = AppID,
Login = login,
Password = pass,
Settings = scope
});
}
catch(Exception ex)
{
}
}
public void GetFriendList(ListBox lb)
{
var friends = vk.Friends.Get(vk.UserId.Value, ProfileFields.FirstName | ProfileFields.LastName);
foreach (var friend in friends)
{
lb.Items.Add(friend.FirstName + " " + friend.LastName);
}
}
}
}
На форме авторизации я сделал так.
using System;
using System.Windows.Forms;
using VkNet;
using VkNet.Enums.Filters;
using VkNet.Exception;
namespace vkmessenger
{
public partial class Form1 : Form
{
Auth auth = new Auth();
public Form1()
{
InitializeComponent();
}
private void button1_Click(object sender, EventArgs e)
{
auth.GetAuth(tbLogin.Text, tbPassword.Text, tbID);
FrndList FrndList = new FrndList();
FrndList.Owner = this;
FrndList.Show();
Hide();
}
}
}
И получить список друзей в другой форме
using System;
using System.Windows.Forms;
using VkNet;
using VkNet.Enums.Filters;
using VkNet.Exception;
namespace vkmessenger
{
public partial class FrndList : Form
{
Auth auth = new Auth();
public FrndList()
{
InitializeComponent();
}
private void FrndList_Load(object sender, EventArgs e)
{
auth.GetFriendList(lbFriends);
}
private void FrndList_FormClosed(object sender, FormClosedEventArgs e)
{
Application.Exit();
}
}
}
Но не работает. Я понимаю в чем вероятная ошибка. На второй форме я опять создаю экземпляр который не имеет данных из первой формы об авторизации. Как выйти из ситуации, как передать в другую форму информацию о том, что уже создан экземпляр класса и работать надо с экземпляром из первой формы? Если пробовать создать static класс для авторизации, то IDE ругается "Нельзя объявлять члены экземпляра в статическом классе" оно в принципе и понятно. Как выйти из ситуации?